ホームページ >データベース >mysql チュートリアル >Class.forName(JDBC_DRIVER) は本当に Java 6 以降廃止されたのでしょうか?

Class.forName(JDBC_DRIVER) は本当に Java 6 以降廃止されたのでしょうか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-05 01:49:44236ブラウズ

Is Class.forName(JDBC_DRIVER) Really Obsolete Since Java 6?

Class.forName(JDBC_DRIVER) Java 6 では不要

この記事では、JDBC ドライバーの登録の必要性の排除について説明しています。 Java 6 以降では、Class.forName(JDBC_DRIVER) を使用しています。この仮定は、 DriverManager は、システム プロパティ "jdbc.drivers" に基づいて適切なドライバーを見つけます。

ただし、System.getProperty("jdbc.drivers") の値を出力すると null が返されるため、ユーザーはアプリケーションがなぜそうなるのか困惑することになります。

回答

見かけの機能「jdbc.drivers」システム プロパティがないにもかかわらず、アプリケーションの動作はこのプロパティとは関係ありません。 Java 6 では、サービス プロバイダーの概念が導入されました。これにより、JVM は起動時に既知のインターフェイスの実装を自動的に検出できるようになります。

このメカニズムに準拠する JDBC ドライバーは DriverManager によって自動的に登録されるため、Class.forName() は不要になります。 。ただし、これはドライバーがサービス プロバイダーの登録をサポートしている場合にのみ適用されます。

サービスの登録を開始するには、ドライバーの JAR ファイルの META-INF ディレクトリ内に「services」という名前のディレクトリを含める必要があります。このディレクトリには、JDBC ドライバーの実装クラスを指定する「java.sql.Driver」という名前のテキスト ファイルが含まれている必要があります。

以上がClass.forName(JDBC_DRIVER) は本当に Java 6 以降廃止されたのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。