3

このタイプのコードは、MySQL JDBC 接続を初期化するコードでかなり見てきました。

Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://10.0.0.2:3306", "username", "password");

今私の質問は、なぜ/いつこの最初の行が必要なのですか? これだけでMySQLデータベースに問題なく接続できました:

conn = DriverManager.getConnection("jdbc:mysql://10.0.0.2:3306", "username", "password");

Connector/J 5.0.8 ドライバーで Java 7 を使用しています。

私のコードには、MySQL ドライバーを直接ロードする import またはクラス ロード ステートメントはありません。汎用の Java SQL インターフェイス クラスのみです。

4

1 に答える 1

3

簡単な回答: 4.0 より前の JDBC ドライバー (JDBC 4.0 では、JDBC ドライバー クラスの自動ロードが導入されています)

以前のバージョンの JDBC では、接続を取得するために、まず Class.forName メソッドを呼び出して JDBC ドライバーを初期化する必要がありました。このメソッドには、タイプ java.sql.Driver のオブジェクトが必要でした。各 JDBC ドライバーには、インターフェース java.sql.Driver を実装する 1 つ以上のクラスが含まれています。Java DB 用のドライバーは org.apache.derby.jdbc.EmbeddedDriver と org.apache.derby.jdbc.ClientDriver で、MySQL Connector/J 用のドライバーは com.mysql.jdbc.Driver です。インターフェース java.sql.Driver を実装するクラスの名前を取得するには、DBMS ドライバーのドキュメントを参照してください。

クラスパスにある JDBC 4.0 ドライバーはすべて自動的にロードされます。(ただし、Class.forName メソッドを使用して、JDBC 4.0 より前のドライバーを手動でロードする必要があります。)

出典: JDBC の基本

于 2012-11-14T01:43:45.833 に答える