Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mengapa memanggil Class.forName(com.mysql.jdbc.Driver) mendaftarkan MySQL untuk JDBC?

Itu mendaftarkannya karena memuat kelas ke dalam memori dan menjalankan inisialisasi statis kelas. Kode penginisialisasi statis kemudian memanggil kerangka kerja JDBC untuk mengatakan "Hai, saya seorang pengemudi JDBC" (dengan memanggil DriverManager.registerDriver ).

Misalnya, kelas driver akan terlihat samar-samar seperti ini:

package com.example.jdbc;

import java.sql.DriverManager;

public class Driver implements java.sql.Driver {
    static {
        DriverManager.registerDriver(new Driver());
    }

    // ...implementation...
}

Kemudian ketika Anda melakukan Class.forName("com.example.jdbc.Driver") , itu memuat kelas dan menjalankan penginisialisasi statis, yang membuat sebuah instance dan mendaftarkannya dengan DriverManager .

Saya harus mencatat bahwa seperti yang dikatakan Andreas , driver JDBC modern tidak memerlukan Anda untuk melakukan ini.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menginstal pdo_mysql di Amazon EC2 dengan PHP 5.5

  2. Menggunakan Visio untuk menghasilkan MySQL DDL

  3. Mengimpor data dari database MySQL ke dalam bingkai data Pandas termasuk nama kolom

  4. Bagaimana cara menambahkan pencarian Spider ke situs web saya? Tidak dapat terhubung ke database

  5. Tabel Migrasi Laravel sudah ada, tetapi saya ingin menambahkan yang baru bukan yang lama