PostgresqlでJDBC

環境
ディストリビューション Vine Linux 2.1.5
Oracle Postgresql-7.1.1
JDK JDK1.2.2


既にPostgresqlがインストールされている必用があります。 postgresqlのJDBCドライバーの作成はこちら のpostgresqlのインストールの部分を参考にして下さい。

JDKは既にセットアップされていなければなりません。JDKのインストールはこちら を参考にして下さい。


手順は以下の通りです。


こちらで作成した /usr/local/pgsql/share/javaにあるpostgresql.jarを$JAVA_HOME/jre/lib/ext等の CLASSPATHの通ったところにコピーするかCLASSPASSで直接指定して、 postgresql.jarの場所を指定しておきます。
CLASSPATHに以下の内容を追加します。

例)
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:/usr/local/pgsql/share/java/postgresql.jar:
通常上記の内容を ~/.bashrc や ~/.bash_profile に記述しておきます。

上記の内容を有効にしたら以下のサンプルプログラムを実行してみましょう。

以下のソースを TestAccess.java という名前で保存します。
事前に次のsqlでテーブルとテストデータを作成しておきます。
crt_table.sql
crt_demodata.sql-->commitのエラーは無視し て下さい。
(Netscapeならシフトキーを押しながらクリックして下さい。)

このサンプルでは以下の環境です。
ホスト名:kenken
DB名前:kenken

注意点は以前のPostgresqlのJDBCではドライバーの指定が postgresql.Driver であったが、 org.postgresql.Driverに変 わっている点です。

又 /usr/local/pgsql/data にある pg_hba.conf ファイルは以下の 内容が有効になるようにしておきます。

local        all                                           trust
host         all         127.0.0.1     255.255.255.255     trust
192.168.20.1のホストからアクセスを許すときは以下のように追加します。
host         all         192.168.20.1  255.255.255.255     trust
TestAccessPGSQL.java

      import java.sql.*;

      public class TestAccessPGSQL {
        public static void main(String argv[]) {
          Connection conn = null;
          Statement stmt = null;
          ResultSet rset = null;
          String url = "jdbc:postgresql:kenken";

          try {
            Class.forName("org.postgresql.Driver");
            conn = DriverManager.getConnection(url,"postgres","");
            stmt = conn.createStatement();
            String sql = "SELECT * FROM address order by name ";
            rset = stmt.executeQuery(sql);
            while (rset.next()) {
              // print the values for the current row.
              String n = rset.getString("name");
              String p = rset.getString("kana");
              String b = rset.getString("tel");
              System.out.println("ROW = " + n + " " + p + " " + b);
            }

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

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

          } finally {
            try {
              if (rset != null) rset.close();
              if (stmt != null) stmt.close();
              if (conn != null) conn.close();

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

コンパイル
javac TestAccessPGSQL.java
  


実行結果
$ java TestAccessPGSQL
ROW = 氏名1 シメイ1 01-2345-6789
ROW = 氏名2 シメイ2 01-2345-6789
ROW = 氏名3 シメイ3 01-2345-6789
ROW = 氏名4 シメイ4 01-2345-6789
ROW = 氏名5 シメイ5 01-2345-6789
ROW = 氏名6 シメイ6 01-2345-6789
ROW = 氏名7 シメイ7 01-2345-6789

  




linux

[へなちょこlinuxへ]   [ホームへ]