ホームページ >データベース >mysql チュートリアル >Java 6 以降での JDBC ドライバーの登録には Class.forName() が必要ですか?
DriverManager ドライバーの登録: Class.forName() Java 6 以降での使用法
質問:
Java 6 以降、Class.forName(JDBC_DRIVER) はいいえですJDBC ドライバーの登録はもう必要ありませんか? jdbc.drivers システム プロパティでドライバー パスを提供する必要があることがドキュメントで示唆されているにもかかわらず、このプロパティを印刷すると null が返されます。アプリケーションが依然として正しく機能するのはなぜですか?
答え:
Java 6 (および JDBC4) での Class.forName() の削除は、jdbc.drivers とは無関係です。財産。 Java では、準拠ドライバーが起動時に JVM に自己登録できる「サービス プロバイダー」の概念が導入されました。
サービス プロバイダーの登録:
この標準の場所に準拠するドライバーMETA-INF ディレクトリ内の JAR ファイル内の services ディレクトリ。このディレクトリには、実装クラスを指定する java.sql.Driver という名前のテキスト ファイルが含まれています。
ドライバ検出:
JVM は、このインターフェイスを実装するドライバを自動的に検出して登録します。 。これにより、準拠ドライバーの Class.forName() を使用した明示的な登録の必要がなくなります。
アプリの機能:
提供された例では、アプリケーションは、 System.getProperty("jdbc.drivers") の null 戻り値 if:
以上がJava 6 以降での JDBC ドライバーの登録には Class.forName() が必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。