流れるようにGEP3(Fluent GEP3)
流れるような(フルーエント)インタフェースは、Groovy 1.8の新規機能である「拡張コマンド式(GEP3)」と親和性が高いのではないかと思い、S2JDBCチュートリアルを参考にして、具体的には上に含まれるテストコードをGEP3でいくつか書きなおしてGroovyから呼び出してみました。
以下抜粋です。
results = jdbcManager.from Employee \ orderBy "name desc" resultList // SELECTの実行 results.each { println it.name } result = jdbcManager.from Address id 1 singleResult // SELECTの実行 dep = jdbcManager.from Department \ leftOuterJoin employeeList() \ id 1 singleResult emp = [name:'test',jobType:JobType.ANALYST,salary:300] as Employee jdbcManager.insert emp execute(); // INSERTの実行 List<Employee> results = jdbcManager.from Employee leftOuterJoin "address" \ where (new SimpleWhere().starts("name", "A").ends("address.name","1")) \ resultList; address1 = jdbcManager.from Address id 1 singleResult
流れたかな?
with(JdbcManager) { ... } を使えば、「jdbcManager.」も省略できるはずです。
Employee.classをEmployeeと書けるところは思わぬ良さです。