4

パッケージ java.sql の Interface Connection を使用しています

実際にはクラスだと思っていましたが、ソースコードを見ようとすると、それがインターフェイスであることがわかりました。

Connection インターフェースのソースには、各メソッドが実装されていない 1 行しかありません!!

このインターフェイスが機能する理由は何ですか?

接続するデータベース: MySql

接続ソース コード ページ: http://www.docjar.com/html/api/java/sql/Connection.java.html

4

3 に答える 3

11

「機能する」のはインターフェイスではなく、特定の RDBMS ベンダーに固有の実装の 1 つです。実際、通常、Connectionインターフェースの実装を提供するのはベンダーです。

電話すると

Connection conn = DriverManager.getConnection(
    "jdbc:jdbc:mysql://localhost:3306/
,    connectionProps);

ドライバー マネージャーは、登録済みの JDBC ドライバーを検索し、MySQL 用のものを見つけ (接続文字列から MySQL であることを認識します)、接続プロパティを MySQL JDBC ドライバー内のクラスのコンストラクターに渡しConnectionますConnection。たとえば、ドライバはMySqlConnectionを実装するパッケージ プライベート クラスのインスタンスを返す場合がConnectionあり、プログラムはそれを使用して RDBMS と対話しますが、クラスが を実装するという事実以外は、クラスの詳細を知る必要はありませんConnection

于 2012-07-22T22:19:37.803 に答える
2

MySQL ドライバー ( http://www.mysql.com/products/connector/ ) には、実際の実装が含まれています。java.sql.Connection インターフェースは、JDBC 標準が期待するメソッドを定義するだけです。各データベース ドライバは、実際の接続方法を定義する必要があります。

于 2012-07-22T22:18:39.163 に答える