1

この例は Oracle の Web サイトから引用しましたが、実装できません。エラーを表示し続けます。mysql 5.1 ドライバー jar をプロジェクトの lib フォルダーとビルド パスに既に追加しています。コードを修正するにはどうすればよいですか?

リンク - http://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html

エラー -

java.sql.SQLException: No suitable driver found for jdbc:JavaEE://localHost:3306/
    at java.sql.DriverManager.getConnection(DriverManager.java:602)
    at java.sql.DriverManager.getConnection(DriverManager.java:154)
    at com.beans.us.dao.Data.getConnection(Data.java:25)
    at com.beans.us.dao.Data.main(Data.java:43)
Cannot connect to database

コード -

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

public class Data {

    public static Connection getConnection() {

        Connection conn = null;
        Properties connectionProps = new Properties();
        String userName = "root";
        String password = "root";
        String dbms = "JavaEE";
        String serverName = "localHost";
        String portNumber = "3306";

        connectionProps.put("user", userName);
        connectionProps.put("password", password);

        try {

            conn = DriverManager.getConnection("jdbc:" + dbms + "://"
                    + serverName + ":" + portNumber + "/", connectionProps);
        } catch (SQLException sQLException) {
            sQLException.printStackTrace();
        }

        if (conn != null) {
            System.out.println("Connected to database");
        } else {
            System.out.println("Cannot connect to database");
        }

        return conn;
    }

    public static void main(String[] args) {

        getConnection();

    }

}
4

3 に答える 3

6

接続文字列は次のとおりです。

"jdbc:JavaEE://..."

しかし、MySQLではそうあるべきです

"jdbc:mysql://..."

また、ドライバーをロードするのを忘れました:

Class.forName("com.mysql.jdbc.Driver");

呼び出す前に行う必要があります

conn = DriverManager.getConnection(...);
于 2013-07-02T18:14:47.503 に答える
1

ドライバのロードを忘れているようです。

Class.forName("com.mysql.jdbc.Driver");

これClass.forName()により、ClassLoader がクラスをメモリにロードします。JDBC ドライバー クラスには、DriverManager後で参照できるようにドライバーを登録する静的初期化ブロックが含まれています。

以前はこれに気づきませんでした。接続文字列は"jdbc:mysql://localhost:3306/dbname"

于 2013-07-02T18:13:50.290 に答える
0

jdbc 文字列が適切にフォーマットされていません。この質問の回答を見てください。

MySQL JDBC ドライバー接続文字列とは何ですか?

于 2013-07-02T18:15:54.133 に答える