/ /ドライバが見つかりませんJDBC - java、mysql、jdbc

ドライバが見つからない例外JDBC - java、mysql、jdbc

私は日食からデータベースに接続するとき、次の例外を取得し続けます。

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at connection.ConnectionFactory.<init>(ConnectionFactory.java:29)
at connection.ConnectionFactory.<clinit>(ConnectionFactory.java:25)
at dao.StudentDAO.insert(StudentDAO.java:53)
at bll.StudentBLL.insertStudent(StudentBLL.java:39)
at start.Start.main(Start.java:23)

しかし、接続が確立されていますデータベースから読み取ると、私はそれを書くことができますが、例外は消えません。 mysql-connector-java-5.1.45-binをビルドパスでパスファイルに追加し、ライブラリセクションに表示されます。 私はDBに書き込むことができるので、URL、ユーザ、パスワードは正しく書かれていると思います。 接続は以下によって確立されます。

   try {
connection = DriverManager.getConnection("jdbc:mysql://localHost:3306/schooldb","root","");
} catch (SQLException e) {
LOGGER.log(Level.WARNING, "An error occured while trying to connect to the database");
e.printStackTrace();
}
return connection;
}

ドライバのコードは次のとおりです。

  private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
try {
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

私はMavenプロジェクトでeclipse Oxygenを使って作業しています。 データベースはMYSQLWorkbench 6.0CEで作成されます。

しかし、私はドライバーに何が間違っているのか分からない。

回答:

回答№1は0

あなたのドライバ名が間違っていると思います ここで私が使用しているドライバは、試してみてください

com.mysql.jdbc.Driver

ローカルホストの "H"も小文字にする

上記の解決策が機能しない場合:

1:インポートを削除する com.mysql.cj.jdbc.* 2:このドライバを使用する private static final String DRIVER = "com.mysql.cj.jdbc.Driver";


回答№2の場合は0

問題は、ドライバクラス名を使用するMySQL Connector / J 5.1.45ドライバを使用していることです com.mysql.jdbc.Driver新しいMySQL Connector / J 8.xドライバで導入されたドライバクラス名をロードしようとします。

MySQL Connector / J 8.0.11へのアップグレード( https://dev.mysql.com/downloads/connector/j/)、または - 現在5.1.45を引き続き使用したい場合は - を使います

private static final String DRIVER = "com.mysql.jdbc.Driver";

また、下位互換性のために、MySQL Connector / J 8.xは上記のクラスをロードするために保持しています。

技術的には、このようにドライバーをロードすることは、JDBC 4以上の自動ドライバーのロードのために、多くの状況で必要ですらありません。