人気ブログランキング | 話題のタグを見る

第11話 Java+PostgreSQLを動かしてみる。

しばらく悩んでいた、Windows端末から
Linux端末にインストールしてあるPostgreSQLをJavaで操作する方法が
ようやく分かったのでメモ。



まずはネットワーク環境を晒しておきます。
Windows:192.168.0.3
Linux:192.168.0.5
NETMASK:255.255.255.0
DefaultGateWay:192.168.0.1

さて、第8話でこんなことを言ってたのを覚えていらっしゃるでしょうか。

> また、tcpip_socketは存在すらしませんでした。

そうなんです。
PostgreSQL8.0からpostgresql.confのパラメータが大きく変化したらしく、
7.X系のインストール手順をそのまま踏襲出来る訳ではなかったのです。

8.X系ではtcpip_socketというパラメータはlisten_addressesに
置き換えられており、ここに外部ホストのIPアドレスを登録する必要があります。
今回の場合、DBへの参照を行うのは、Windows機とLinux機の2台のみ。
なので、この2台のIPアドレスを追加します。

# vi /usr/local/pgsql/data/postgresql.conf
listen_addresses ='localhost,192.168.0.5'


このパラメータのデフォルトはlocalhostですが、カンマ区切りでIPアドレスの追加が
出来ます。Unix系OSとしては当然*(ワイルドカード)も使用可能です。

そしてもう一つ。
同じディレクトリにある、pg_hba.confという設定ファイルの修正です。
こいつはホストベースの認証を制御しますが、
デフォルトではUNIXドメインソケットとローカルなTCP/IPソケット、
つまり自分自身からの接続しか許可していないため、
今回のようなLAN内から接続したい場合はIPアドレス帯域を追加してやる必要があります。

# vi /usr/local/pgsql/data/pg_hba.conf

#IPv4 local connections:
host all all 192.168.0.3/24 trust

以上でネットワーク接続の設定は完了。
PostgreSQL自身の設定値などもまだまだ変更の余地はあるみたいですが、
そちらについては追々やっていこうと思います。


さて、続いてはJavaからPostgreSQLへ接続する方法です。
当然の如くJDBCを使いますが、なかなか他ホストのDBへ接続する場合の
記述方法が見つからなかったので、Connectionの取得方法を書いておきます。
ちょっと分かりづらいかもしれませんが、あるクラスがコネクションを取得したい場合に
呼び出すメソッドです。

/**
* Connection情報の取得を行います。
* @return Connection
* @exception SQLException DB接続時のエラー
*/

public Connection createConnection() throws SQLException{
  Connection connect = null;

  /*
  * JDBCドライバを宣言します。
  * ドライバオブジェクトを生成し、ドライバを使用出来る状態にします。
  */

  try{
    Class.forName("org.postgresql.Driver");
  }catch(ClassNotFoundException ce){
    ce.printStackTrace();
  }


  /*
  * Connectionを取得します。
  */

  connect =
    DriverManager.getConnection
    ("jdbc:postgresql://192.168.0.5:5432/java_db" , "postgres" , "");
  return connect;
}

当然ながらIPアドレスとポート番号、dbnameは適宜変える必要はありますが、
概ねこんな感じかと。PostgreSQLはデフォルトでインストールした場合は
ポート番号:5432を使用するので、変更してないときはポート番号は
このままでOKです。
あともう一つの主役、JDBCDriverはこちらのサイトでダウンロード出来ます。
自分のPostgreSQLのバージョン、及びJDKのバージョンによって
取得するファイルが変わるのでご注意を。
JDK1.4.X+PostgreSQL8.0.Xの場合は、「8.0-310 JDBC 3」をダウンロードして下さい。

段々と環境が整ってきています。
けどやりたい事が多くてなかなか進みません。
新しい職場でやっていくのもなかなか大変ですし。。。

長い目で見守って頂けると幸いですm(__)m
by n_masa18 | 2005-03-19 02:45


<< 第12話 yumを使ってみる 第10話 そしてFedora3へ。 >>