2010年12月15日水曜日

【Oracle】DataSourceを使用してデータベース接続

DataSourceを使用してOracleに接続する方法。
単純にDBに接続したいのであれば、この実装で十分可能。ただし、この実装だとgetConnection()を呼び出すたびにデータベースとの物理接続が行われて性能面に与える影響が大きくなる。
実業務では、こんなコード書くことはまずないと思う。

OracleDataSourceに接続情報を設定

この実装は、TYPE4(thin)ドライバを使用している。
URLの記述形式は、Oracleのマニュアルを参照するとよい。
// OracleDataSourceのインスタンスを生成
OracleDataSource dataSource = new OracleDataSource();
// URLを設定
dataSource.setURL("jdbc:oracle:thin:@localhost:1521:xe");
// ユーザ名、パスワードを設定
dataSource.setUser("hoge");
dataSource.setPassword("hoge");

データベース接続(java.sql.Connection)の取得

getConnection()を呼び出すことによってデータベース接続を取得する。
getConnectionは、javax.sql.DataSourceインタフェースで定義されているメソッドとなっている。
// コネクションの取得
Connection connection = dataSource.getConnection();

SQLの実行

JDBCで提供されているインタフェースを使ってSQL文を実行する。
この実装は、DBにつながったことを確認するだけなので簡単なSQL文を実行しているだけ。
// JDBCのAPIを使ってSQLを実行する。
// 実行結果として標準出力に「result = 1」と表示される。
PreparedStatement statement = connection.prepareStatement("select '1' from dual");
ResultSet resultSet = statement.executeQuery();

while (resultSet.next()) {
    System.out.println("result = " + resultSet.getString(1));
}