Groovy SQL

本例子说明如何通过Groovy执行SQL

先看一下这个例子:
piEstimate = 3;
println("Pi is about ${piEstimate}");
println("Pi is closer to ${22/7}");

这个例子显示出,在串中,用${}可以进行表达式计算。
这个特性在下面要经常用到。

例子1:执行简单查询
看下面的3行代码:

import groovy.sql.Sql
sql = Sql.newInstance("jdbc:jtds:sqlserver://serverName/dbName-CLASS;domain=domainName", "username",
                     "password", "net.sourceforge.jtds.jdbc.Driver")
sql.eachRow("select * from tableName", { println it.id + " -- ${it.firstName} --"} );

前两行代码一看就知道什么意思了。
最后一行代码用到了eachRow函数,显示了Groovy SQL执行的方便性。这行代码执行一个查询语句,执行的结果被逐行打印出来(注意这里it是Closure的匿名参数)。
输出结果实例:
001 -- Lane --

例子2:从数据库中查询单行数据
如果只想查询单行数据,那就按下面的写法:
row = sql.firstRow("select columnA, columnB from tableName")
println "Row: columnA = ${row.columnA} and columnB = ${row.columnB}"

例子3:更复杂的例子
前面两个例子太简单了,GroovySql能力远不止于此,更复杂的插入、更新和删除操作也都是很方便可以支持的。
看一下下面这个例子,用到了execute方法

firstName = "yue"
lastName = "wu"
sql.execute("insert into people (firstName, lastName) "+
  " values ('${firstName}', ${lastName})")

注意这个例子里,你不得不进行原始的拼串操作,这是不理想的,可以改进一下。
 
firstName = "yue"
lastName = "wu"
sql.execute("insert into people (firstName, lastName) "+
  " values (?,?)", [firstName, lastName])

这样是不是就好多了?

再看用executeUpdate的例子:

comment = "Lazy bum"
sql.executeUpdate("update people set comment = ? where id=002", [comment])

delete也是一样:

sql.execute("delete from word where word_id = ?" , [5])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值