【Java】【Eclipse】【PostgreSQL】JavaでPostgreSQLを使う

はじめに

 * Javaで、PostgreSQLを使うことになったので、サンプルを作ってみる

設定手順

 [1] PostgreSQLを設定する

 以下の関連記事を参照のこと(ついでに、テーブルやデータも以下の記事のものを使用する)
http://blogs.yahoo.co.jp/dk521123/33153278.html
 [2] JDBCドライバーのダウンロード

 以下のサイトから取得する
http://jdbc.postgresql.org/download.html#current
【気を付けること】
2014/04/17現在は以下のVerがリリースされているが、Java VMによって以下のように変わる模様。
(詳しくは、ダウンロード・サイトの英語の説明を参照ください)
*----------------
JDBC3 Postgresql Driver, Version 9.3-1101  : Java v1.5
JDBC4 Postgresql Driver, Version 9.3-1101  : Java v1.6
JDBC41 Postgresql Driver, Version 9.3-1101 : Java v1.7 or 1.8
*----------------

 [3] ログインロールを追加する(詳細は、以下【ログインロール作成方法】を参照のこと)

 [4] テーブルにアクセス権を付与する(詳細は、以下【アクセス権を付与する手順】を参照のこと)

 →あとはプログラムを組むだけ

ログインロール作成方法

http://blog.systemjp.net/entry/20110413/p4
が参考になる
  [1] pgAdmin IIIを起動する
  [2] 「ログインロール」を右クリックして、[新しいログインロール]を選択
  [3] 以下を入力して「OK」ボタン押下

 ■ 「プロパティ」タブ
   「ロール名」:任意の文字列(例「user」)
 ■ 「定義」タブ
   「パスワード」:任意のパスワード(例「password」)

アクセス権を付与する手順

[1] pgAdmin IIIを起動する
[2] 対象のテーブルを右クリックして、[プロパティ]-[権限]を選択
[3] 対象のロールを追加する

サンプル

SamplePostgreSQL.java

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

public class SamplePostgreSQL {

   /**
    * main
    */
   public static void main(String[] args) throws Exception {

      try {
         System.out.println("Start");

         SamplePostgreSQL.dbAccess();
      } catch (Exception e) {
         e.printStackTrace();
      } finally {
         System.out.println("Finished");
      }
   }

   private static void dbAccess() throws Exception {
      Connection connection = null;
      Statement statement = null;
      ResultSet resultSet = null;

      try {
         Class.forName("org.postgresql.Driver");

         connection = DriverManager.getConnection(
               "jdbc:postgresql://localhost:5432/Sample",// "jdbc:postgresql://[場所(Domain)]:[ポート番号]/[DB名]"
               "user",      // ログインロール
               "password"); // パスワード
         statement = connection.createStatement();

         resultSet = statement.executeQuery("SELECT * FROM Person");
         while (resultSet.next()) {
            System.out.println(resultSet.getString("id"));
            System.out.println(resultSet.getString("name"));
            System.out.println(resultSet.getString("sex"));
         }
      } finally {
         if (resultSet != null) {
            resultSet.close();
         }
         if (statement != null) {
            statement.close();
         }
         if (connection != null) {
            connection.close();
         }
      }
   }
}

出力結果

Start
X0000001
Mike
m
Finished

関連記事

PostgreSQL / Java で INSERT/UPDATE/DELETE を行う

http://blogs.yahoo.co.jp/dk521123/33365684.html
 * この記事を書く際に起こったトラブル

PostgreSQL / Java でエラーメッセージが文字化けする

http://blogs.yahoo.co.jp/dk521123/33325738.html

Java - PostegreSQL で発生したトラブル

http://blogs.yahoo.co.jp/dk521123/33327164.html