フレサーモン難民

備忘録など ほぼ自分向けのまとめ

PostgreSQLで作成したデータベースにJavaから接続できました。

PostgreSQLのインストールや、PostgreSQLでのデータベース作成はまあ問題なくいけたんですが、JDBCドライブのインストール関連のとこで何か手間取ったので備忘録として残します。

STEP1:JDBCドライブをインストールする

PostgreSQL JDBC Download

解凍するとpostgresql-〇.〇.〇.jarといった名前のファイルができる。

*** STEP2:JDBCドライブのjarファイルを、Eclipseのプロジェクト直下に「lib」という名前のフォルダを作りそこに入れる。

STEP3:Eclipseのプロジェクトのビルド・パスの構成にJDBCドライブのjarファイルを追加する。

プロジェクト名のとこで右クリック→「ビルド・パス」→「ビルド・パスの構成」を選択。「ライブラリー」より「外部JARの追加」でJDBCドライブのjarファイルを追加する。追加するとEclipseのプロジェクト内に「参照ライブラリー」が出来てる。

7/10修正:JDBCドライブのjarファイルを、動的Webプロジェクトを追加したアプリケーションサーバーのlibフォルダ上に置いておくことでJavaプログラムからPostgreSQLが利用できました。たとえば自分の環境では、動的Webプロジェクトに追加したサーバーがtomcat9だったので、C:\pleiades\tomcat\9\libにjarファイルを設置。

今回書いたJavaのコードは以下の通り。
データベース名"school"に、身長(height)、名前(name)の2つのカラムを持つテーブル"student"を作成し、全てのレコードを取り出して出力させています。ちなみにこちらの記事に記載されたコードのほぼ丸写しです。
qiita.com

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class PostgreExample {
  public static void main(String[] args){

    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rSet = null;

    String url = "jdbc:postgresql://localhost:5432/school";  // データベース"school"
    String user = "postgres";
    String pass = "password";

    try {
      conn = DriverManager.getConnection(url, user, pass);
      pstmt = conn.prepareStatement("select * from student");  // studentというテーブルの要素を取り出す
      rSet = pstmt.executeQuery();

      while(rset.next()) {
        String height = rSet.getString("height");
        String name = rSet.getString("name");

        System.out.println("身長:" + height);
        System.out.println("名前:" + name);
      }

    }
    catch (SQLException e) {
      e.printStackTrace();
    }
  }

}