Japanese Tutorial 6 - Groovy SQL Add comment to Wiki View in Wiki Edit Wiki page Printable Version

Groovy SQL



このセクションでは、GroovySQL article, by Andrew Glover を一部引用しています。



また、Groovyのstringリテラルの中に変数を取り込む機能を使っています。

例:

  このようにGroovyは、${}の中のものを評価します(groovy expression)。この機能を以下では、色々な所で使ってます。



簡単なクエリ(照会)



最初のGroove SQL のコードは3行です。

最初の行はJavaのimport文です。これでGroovyはSqlオブジェクトのフルネームが分かります。 2行目は、SQLデータベースへの新しいコネクションを生成し、変数sqlにセットします。ここでは、データベースがMS SQL ServerでjTDS jdbc ドライバーを使っていますので username,password を含むすべてのパラメーターを実際に使うデータベースに合わせてください。

最後の行では、Sql の eachRow メソッドを2つの引数で呼びます(1番目はクエリストリング、2番目は、2つの値を プリント するクロージャー)

クロージャーの中で、"it"(result set の行を表す)のフィールドは2つの方法で指定されてます。 最初は、単純なフィールド名(カラム名)指定で、もう一つは、 フィールド名(カラム名)指定ですが上記のGroovy expressionを経由しています。

実行結果: 



DBから先頭行の値を取り出す



DBの先頭行のカラムの値を知りたいだけなら:

複雑なクエリー(更新)



これまでのサンプルは、簡単なもの(照会)でしたけど、GroovySql は、insert,update,delete  といったクエリでも大丈夫です。 これらの種類のクエリでは、クロージャーを必要としない時が多いでしょうから、GroovySqlは、execute と executeUpdate メソッドを用意しています。 通常のJDBCのexecute と executeUpdateメソッドを思い浮かべますね。

  insertのサンプル: peopleというテーブルに ${}を使って値の変数を置換し 新しい行を insert するサンプルです。







このサンプルでは、string型データをシングルクウォートしています。 これは、いいやり方ではないですね(そのデータがシングルクウォートを含んでいた場合を考えて見てください) 以下のようにprepared statementsを使いましょう。



insert したいデータは、配列のitemとしてexecuteメソッドの2番目の引数になり、1番目の引数のinsert ステートメントの"?"達は、その配列の値でそれぞれ置換されます。 Updateも同様ですが、ここでは、executeUpdateメソッドを使ってます。 executeUpdate メソッドでも"?"を置換するリストを引数にしています。



deleteもクエリ文が違うだけで同じです:

 

Search

Results of your search request can come from various sources: the Groovy website itself, the JIRA issues, the API documentation, as well as a few other interesting Groovy-related blogs.

  By  -  pages  -  views  - last modified