Class.forName(JDBC_DRIVER) - Adakah Ia Usang?
Walaupun ada dakwaan bahawa Java 6 menafikan penggunaan Class.forName(JDBC_DRIVER) , telah diperhatikan bahawa aplikasi tertentu masih berfungsi dengan betul tanpa mendaftar secara eksplisit Pemandu JDBC. Tingkah laku ini telah menimbulkan persoalan tentang keperluan kaedah ini.
Menyelesaikan Kontroversi
Apabila System.getProperty("jdbc.drivers") mengembalikan null, ia menunjukkan bahawa kaedah harta sistem tidak memainkan peranan dalam pendaftaran pemandu. Sebaliknya, teka-tekinya terletak pada pengenalan konsep "penyedia perkhidmatan" dalam Java 6 dan JDBC4.
Mekanisme Pembekal Perkhidmatan
Dalam mekanisme ini, pelaksanaan antara muka yang diketahui boleh dikesan oleh JVM semasa permulaan. Pemacu yang mematuhi konsep ini didaftarkan oleh DriverManager secara automatik, menghapuskan keperluan untuk Class.forName(). Walau bagaimanapun, ini hanya terpakai kepada pemandu yang menyokong mekanisme ini.
Peranan Direktori Perkhidmatan
Pendaftaran perkhidmatan dimulakan apabila direktori perkhidmatan wujud dalam fail JAR pemandu , di dalam direktori META-INF. Dalam direktori ini, fail teks mesti ada dengan nama antara muka yang dilaksanakan (java.sql.Driver untuk pemacu JDBC) dan kelas pelaksana.
Kesimpulan
Kaedah Class.forName(JDBC_DRIVER) mungkin masih diperlukan jika pemacu JDBC tidak menyokong mekanisme pembekal perkhidmatan. Walau bagaimanapun, bagi pemandu yang melakukannya, pendaftaran eksplisit tidak lagi diperlukan, kerana DriverManager mengesan dan memuatkannya secara automatik.
Atas ialah kandungan terperinci Adakah `Class.forName(JDBC_DRIVER)` Lapuk di Jawa Moden?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!