Class.forName()がないとDBに接続できない?java.sql.SQLException: No suitable driver found for jdbc:postgresql

Java
スポンサーリンク

EclipseでPostgreSQLを使ってDB接続を行う際に、
No suitable driver found for jdbcのエラーが発生しました。

クラスパスはしっかり設定できているのに…

java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432/bat_process
	at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:702)
	at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)

結論から言うと、ドライバの初期化をしていないことが問題でした。

try{
    Class.forName("org.postgresql.Driver");
    //
}
catch (ClassNotFoundException e) {
    //
}

こんな感じで、Class.forName()をtry…catchでコードに加えるとDBに接続できるようになります。

ちなみに私の実行環境はこんな感じでした。

  • Java 8
  • PostgreSQL 13.4
  • PostgreSQL JDBC Driver 42.2.23
  • Eclipse 4.20.0

MySQLのときは、Class.forName()がなくてもDB接続できたのですが、PostgreSQLには必要なのでしょうか….

とりあえず、動いたのでOKです。

コメント

タイトルとURLをコピーしました