DriverManager Pendaftaran Pemandu: Penggunaan Class.forName() dalam Java 6 dan Seterusnya
Soalan:
Sejak Java 6, Class.forName(JDBC_DRIVER) tidak lagi diperlukan untuk pendaftaran pemandu JDBC? Walaupun dokumentasi mencadangkan bahawa sifat sistem jdbc.drivers harus menyediakan laluan pemandu, mencetak sifat ini mengembalikan null. Mengapakah aplikasi masih berfungsi dengan betul?
Jawapan:
Penghapusan Class.forName() dalam Java 6 (dan JDBC4) tidak berkaitan dengan jdbc.drivers harta benda. Java memperkenalkan konsep "penyedia perkhidmatan" di mana pemandu yang mematuhi boleh mendaftar sendiri dengan JVM semasa permulaan.
Pendaftaran Penyedia Perkhidmatan:
Pemandu yang mematuhi tempat standard ini direktori perkhidmatan dalam fail JAR mereka dalam direktori META-INF. Direktori ini mengandungi fail teks bernama java.sql.Driver, yang menentukan kelas pelaksana.
Pengesanan Pemacu:
JVM secara automatik mengesan dan mendaftar pemacu yang melaksanakan antara muka ini . Ini menghapuskan keperluan untuk pendaftaran eksplisit menggunakan Class.forName() untuk pemacu yang mematuhi.
Fungsi Apl:
Dalam contoh yang disediakan, aplikasi mungkin masih berfungsi dengan betul walaupun nilai pulangan nol untuk System.getProperty("jdbc.drivers") jika:
Atas ialah kandungan terperinci Adakah Class.forName() Diperlukan untuk Pendaftaran Pemandu JDBC di Java 6 dan Kemudian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!