GroovyでのDB処理をまとめてて、わからなかった奴ら。
上はともかく、下のdatasetについてはfumokmmさんの所で紹介されているやりかたそのままだから間違ってないと思うんですが。。。
import groovy.sql.Sql
def sql = Sql.newInstance("jdbc:mysql://localhost:3309/test", "yamap", "yamap", "com.mysql.jdbc.Driver")
// Listを返すexecuteInsert というのもあったけど何が返ってくるのかわからない。
//(色々試したけど空のリストしか返ってこない。。。)
def keys = sql.executeInsert("insert into data (id, name) values (?,?)",['77', 'yamap'])
assert keys == []
println sql.rows("select * from data where id = ?", ["77"])
// dataSetを使用するとsql作ってくれるとかあるらしいけど、例外発生。何が違う??
def dataSet1 = sql.dataSet('data')
def dataSet2 = dataSet1.findAll{it.name == 'yamada'}
// groovy.lang.GroovyRuntimeException: Could not find the ClassNode for MetaClass: org.codehaus.groovy.runtime.metaclass.ClosureMetaClass@1998b7d[class ConsoleScript9$_run_closure1]
println dataSet2.rows()