0

この単純なコードを使用して、mysql データベースに接続しようとしています。

import java.sql.*;
public class OdbcAccessConnection_1 {
  public static void main(String [] args) {
    Connection con = null;
    try {
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
    // Connect with a url string
      con = DriverManager.getConnection("jdbc:mysql://localhost/books","root","1234");
      System.out.println("Connection ok.");
      con.close();
    } catch (Exception e) {
      System.err.println("Exception: "+e.getMessage());
      e.printStackTrace();
    }
  }
}

接続が機能しているかどうかを教えてくれるだけです。データベースに問題はなく、このコード/接続は netbeans で機能します。私が得ているStackTraceは -

the java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/books
        at java.sql.DriverManager.getConnection(DriverManager.java:602)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)
        at OdbcAccessConnection_1.main(OdbcAccessConnection_1.java:13)

私は 64 ビット Windows 7 で作業しており、Connector/ODBC ドライバー 64 ビットの 5.1 バージョンを使用しています。ODBC ではすべてが接続されているようで、テストは成功しました。しかし、コードを実行すると、上記のスタック トレースが表示されます。非常に単純なものが欠けているので、ご意見やご協力をいただければ幸いです。ありがとうございました:)

4

5 に答える 5

2

netbeans または使用している IDE の [実行] メニューに移動します => [プロジェクト構成の設定]、[カスタマイズ] の順に選択します。次に、左側のドロップダウン メニューで [ライブラリ] を選択します。適切なドライバー ファイルを jar またはフォルダーに追加します。[OK] をクリックします。

于 2012-12-15T13:19:57.880 に答える
0

Class.forName行を追加するのを忘れていたので、このエラーが忍び寄りました。mysql ドライバー jar はクラスパス上にありましたが、誰もドライバー クラスを暗黙的にロードしないため、セッション ファクトリはロードされたドライバー クラスを見つけることができません。したがって、この行の目的。

あなたの場合、間違ったものをロードしています。jdbc:mysql://接続で使用する場合は、Class.forName("com.mysql.jdbc.Driver")にする必要があります。

于 2012-07-30T16:16:09.667 に答える
0

jdbc:mysql://localhost/booksは、MySQL JDBC ドライバーを使用して MySQL に直接接続するために使用する URL です。JDBC/ODBC ドライバーが使用する URL は異なります ( http://docs.oracle.com/javase/1.3/docs/guide/jdbc/getstart/bridge.doc.htmlを参照)。

この JDBC/ODBC ブリッジの使用はお勧めできません。JDBC ドライバーを提供しないデータベースにアクセスする場合にのみ使用してください。これは MySQL には当てはまりません。JDBC ドライバーであるConnector/Jを使用します。このドライバをクラスパスに追加したら、現在使用している URL を使用して、JDBC/ODBC ドライバをクラスパスから削除 (およびコードからロード) できます。

于 2012-05-05T17:47:36.713 に答える
0
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/books","root","1234");
于 2012-05-10T05:52:28.353 に答える