ホームページ > データベース > mysql チュートリアル > 「Class.forName(JDBC_DRIVER)」はモダン Java では廃止されますか?

「Class.forName(JDBC_DRIVER)」はモダン Java では廃止されますか?

Susan Sarandon
リリース: 2025-01-04 12:05:41
オリジナル
395 人が閲覧しました

Is `Class.forName(JDBC_DRIVER)` Obsolete in Modern Java?

Class.forName(JDBC_DRIVER) - 廃止されましたか?

Java 6 では Class.forName(JDBC_DRIVER) の使用が推奨されていないと主張されていますが、 、特定のアプリケーションは JDBC を明示的に登録しなくても正しく機能することが確認されています。運転手。この動作により、このメソッドの必要性について疑問が生じています。

論争の詳細

System.getProperty("jdbc.drivers") が null を返す場合、それはシステム プロパティ メソッドはドライバーの登録には関与しないことを確認してください。代わりに、パズルは Java 6 と JDBC4 の「サービス プロバイダー」概念の導入にあります。

サービス プロバイダー メカニズム

このメカニズムでは、既知のインターフェイスの実装が行われます。起動時に JVM によって検出できます。この概念に準拠したドライバーは DriverManager によって自動的に登録されるため、Class.forName() は必要ありません。ただし、これは、このメカニズムをサポートするドライバーにのみ適用されます。

サービス ディレクトリの役割

サービスの登録は、ドライバーの JAR ファイルにサービス ディレクトリが存在するときに開始されます。 、META-INF ディレクトリ内。このディレクトリ内には、実装されたインターフェイス (JDBC ドライバーの場合は java.sql.Driver) と実装クラスの名前を含むテキスト ファイルが存在する必要があります。

結論

JDBC ドライバーがサービス プロバイダー メカニズムをサポートしていない場合は、Class.forName(JDBC_DRIVER) メソッドが必要になる場合があります。ただし、ドライバーの場合は、DriverManager が自動的に検出してロードするため、明示的な登録は必要ありません。

以上が「Class.forName(JDBC_DRIVER)」はモダン Java では廃止されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート