Groovyを使用すると通常のJavaでJDBC APIを使用した場合
に比べて、処理が大分楽にかけます。特にRubyをやっている
人にとっては馴染みやすいと思います。ちょこっとした
ツール作成する際などに威力を発揮します。
(1) コネクション生成
import groovy.sql.Sql sql = Sql.newInstance("JDBC URL", "ユーザID", "パスワード", "JDBCドライバー")
(2) データ取得(SELECT)
Sqlオブジェクトは既に生成済みだとします。
テストに使用するテーブルは以下のようなものとします。
create table HOGE_TBL ( name varchar2(100), age int );
sql.eachRow("select * from hoge_tbl"){ row |
println row.name
println row.age
}
また、デフォルトで値を一つ受け取るクロージャーは
itという暗黙変数が使用できるので
sql.eachRow("select * from hoge_tbl"){
println it.name
println it.age
}
ともかけます。
上記の両方ともクロージャーの処理が終了した段階で
内部のResultSet等は自動的にクローズされます。
便利ですね。これは、GroovyでIO処理を行った場合
も同じです。そちらの方も後日書こうと思います。
PrepareStatementみたいにプレースホルダーを
使用することも出来ます。
tableName = 'hoge_tbl' sql.eachRow("select * from ?", [tableName]){ println it.name println it.age }
当然埋め込み変数も使用できます。
tableName = 'hoge_tbl' sql.eachRow("select * from ${tableName}"){ println it.name println it.age }
================================
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ