環境
- IntelliJ IDEA community版 (2020.2.4)
- WSL2(Ubuntu 20.04)
- PostgreSQL 12.7
- PostgreSQLでテーブル作成が完了していること(テーブルの中身は任意)
目的
- JavaのプログラムからPostgreSQLで作成したテーブルを読みたい(selectしたい)
- JDBCを使いたい
エラー内容
次のようなJavaプログラムをIntelliJ IDEAで実行しようとすると、
ビルド時に「No suitable driver found for jdbc:postgresql」というエラーが発生します。
TestClass.c
import java.sql.*;
public class TestClass{
public static void main(String[] args) {
//接続文字列(ユーザ名とパスワードは各自の設定に合わせてください)
String url = "jdbc:postgresql://localhost:5432/postgres";
String user = "user";
String password = "pass";
try {
//PostgreSQLへ接続
Connection conn = DriverManager.getConnection(url, user, password);
//自動コミットOFF
conn.setAutoCommit(false);
//SELECT文の実行
String qry = "SELECT * FROM XXテーブル WHERE YY番号 = ?";
PreparedStatement ps = conn.prepareStatement(qry);
ps.setInt(1, Integer.parseInt(args[0]));
// SQL文を実行した結果を受け取る
ResultSet rset = ps.executeQuery();
// 以降、省略
} catch (SQLException throwable) {
throwable.printStackTrace();
}
}
}
対処法
- こちらからPostgreSQLのJDBCドライバ(4.2)をダウンロードします。
- IntelliJ IDEAの [ファイル] - [プロジェクト構造]を選択します。
- 表示されたプロジェクト構造ウインドウの左メニューにある「モジュール」を選択します。
- プロジェクト構造ウインドウの右の方にある「+」(追加)をクリックして、JARs ordirectoriesを選択します。
- ダウンロードしたJDBCドライバの.jarファイルを選択します。
- 適用をクリックします。
- 再度ビルドを実行します。
- 以上で、「No suitable driver found for jdbc:postgresql」のエラーが解消されます。