ファイヤープロジェクト
接続
2004-04-05T23:00+09:00   matsu
まずはDBに接続するまでの手順について記述する.JDBCを使用する場合は,いきなり接続するということはできない.libpqを使用する場合はコンパイル時にライブラリと静的リンクしたが,JDBCの場合は,クラスファイルのロードからソースで指定する必要がある.
DBに接続して切断するだけのサンプルを以下に示す.
では実行.
$ java JDBCConnectSample jdbc:postgresql://dbserver/firstdb matsu hogefuga
Connect to jdbc:postgresql://dbserver/firstdb
User : matsu Pwd : hogefuga
なんだかつまらない出力だが,うまく実行できればサーバ側で以下のようなログが出る(※).
Apr  5 22:29:48 dbserver postgres[390]: [1] DEBUG:  connection: host=xxx.xxx.xxx.xxx user=matsu database=firstdb
JDBCを使用してDBに接続する際の処理の流れは以下になる.
  1. JDBCドライバのロード
  2. DriverManagerに接続要求を出す.
※ 本当に出るか出ないかはサーバのログレベルによる(たぶん).
JDBCを使用するには以下のimportが必要である.
import java.sql.*;
これはJDKに含まれている.DBサーバに接続するためのJDBCドライバはDB毎に実装があり,PostgreSQL用JDBCドライバのロードは次節に記述する.JDBCとJDBCドライバ,上位APとの関係を以下に示す.
JDBCが上位APへの統一的なAPIを提供し,DBサーバによる差異はJDBC,JDBCドライバ間で吸収する.これにより上位APはDBサーバの違いに煩わされることなくDBアクセスプログラミングを楽しむことができる.
サンプルではstatic初期化ブロックにてJDBCドライバをプログラムで明示的にロードした.
try {
    Class.forName (PG_JDBC_DRIVER);
} catch (ClassNotFoundException e) {
    System.err.println("JDBCドライバ  " + PG_JDBC_DRIVER + " がみつかりません.");
    System.exit(-1);
}
ロードするクラスはorg.postgresql.Driverである.これがPostgreSQL用JDBCドライバの実装である.
JDBCドライバのロードができたら,あとは接続である.
try {
    // 接続
    Connection dbConnection = DriverManager.getConnection(url, user, pwd);
    // 切断
    dbConnection.close();
} catch (SQLException e) {
    System.err.println("Failed to connect");
    System.exit(-1);
}
多くのJDBCがらみのメソッドはSQLExceptionを投げる可能性がある.ここでもtry-catchしている.
matsu(C)
Since 2002
Mail to matsu