【DB2逆引きリファレンス目次】 【DB2逆引きリファレンス目次#アプリケーション開発編】 【DB2逆引きリファレンス目次#Javaアプリケーション】
前提
- クライアントインスタンスを利用できる必要があります
解説
ユニバーサルJDBCドライバーはDB2 V8.1から利用できる新しいJDBCドライバーであり、Type2およびType4 JDBCドライバーとして機能します。 ユニバーサルJDBCドライバーを利用するためには、以下のクラスライブラリのアーカイブをJava実行環境(JRE)のCLASSPATHに追加しておく必要があります。
- db2jcc.jar
- db2jcc_license_cu.jar
これらのアーカイブは、DB2をインストールしたディレクトリの下にあるサブディレクトリjavaに格納されています。 Type2 JDBCドライバーとして利用する場合は、さらに以下にあげるような環境変数が正しく設定されている必要があります。
- LD_LIBRARY_PATH、SHPTAHもしくはLIBPATH(各種UNIX環境の場合)
- PATH(Windows環境の場合)
- DB2INSTANCE
CLASSPATHの設定も含めたこれらの設定は、DB2クライアントを利用できる環境になっていれば正しく設定されているはずです。 なお、ユニバーサルJDBCドライバーのクラス名は以下のようになります。 com.ibm.db2.jcc.DB2Driver
ユニバーサルJDBCドライバーをType2 JDBCドライバーとして利用する場合は、以下の形式のURLでデータベースに接続します。 jdbc:db2:データベース名
使用例
Type2ドライバーを用い、データベース(ここではsample)にユーザ(ここではuser)とパスワード(ここではpassword)を指定して接続する例です。
import java.sql.*;
public class Type2Sample {
public static void main(String[] args) {
try {
Class.forName("com.ibm.db2.jcc.DB2Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
return;
}
Connection conn = null;
PreparedStatement ps = null;
ResultSet result = null;
try {
conn = DriverManager.getConnection("jdbc:db2:sample", "user", "password");
ps = conn.prepareStatement("SELECT * FROM employee");
result = ps.executeQuery();
while (result.next()) {
System.out.print(result.getInt("EMPNO"));
System.out.print(" ");
System.out.println(result.getString("FIRSTNME"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (result != null) {
try {
result.close();
} catch (SQLException e) { }
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) { }
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) { }
}
}
}
}
注意
- FixPak2以降がインストールされていないと、ユニバーサルJDBCドライバーをType2ドライバーとして利用することはできません。インストールされていない場合は、レガシーJDBCドライバーを利用する必要があります。
- 接続するデータベースは予めカタログしておく必要があります。