ホームページ >データベース >mysql チュートリアル >JDBC ドライバー登録のための Class.forName() はまだ必要ですか?
JDBC ドライバーの登録: Class.forName() の廃止
この質問は、Class.forName を使用して JDBC ドライバーを登録するという古い要件に関する懸念を引き起こします。 () は、以前のスタック オーバーフローの議論で示唆されたとおりです。 Java 6 以降、DriverManager はシステム プロパティ「jdbc.drivers」を使用して適切なドライバーを取得するため、この手順が不要になると記載されています。ただし、投稿者はプロパティを印刷するときに null 値に遭遇します。
回答:
問題は、「jdbc.drivers」プロパティにあるのではなく、むしろ概念にあります。 Java 6 および JDBC4 で導入され、「サービスプロバイダー」として知られています。ここで、既知のインターフェイスの実装は、起動時に JVM によって自動的に検出されます。準拠した JDBC ドライバーはこのメカニズムを活用し、DriverManager がそれらを簡単に登録できるようにします。したがって、Class.forName() は、ドライバーがこの機能をサポートする場合にのみ冗長になります。
サービスの登録は、ドライバーの JAR ファイルの META-INF ディレクトリ内に「services」ディレクトリが存在することによってトリガーされます。このディレクトリには、実装されたインターフェイスの名前 (JDBC ドライバーの場合は「java.sql.Driver」など) を持ち、実装クラスを指定するテキスト ファイルを格納する必要があります。
以上がJDBC ドライバー登録のための Class.forName() はまだ必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。