1 就是用 groovy.sql.Sql 和java 的Sql一样一样的 看api就行了 事例代码
import groovy.sql.Sql
def dbConn = new Sql(dataSource);
2 就是用像Hibernate Criteria 差不 几个事例代码 (一定要注意类型)
def regionStat = RegionStat.createCriteria().list {
and {
'in'('regionBlockLocationId', RBLMap.keySet().collect {G.parseInt(it)})
or {
gt('markUp', 100)
lt('markUp', -100)
}
eq('weekend', G.dateFormat(params.weekend))
}
}
User.createCriteria().list{
projections{
property('username')
property('userRealName')
}
and{
if(userNameValuelist){
"in"("username",userNameValuelist)
}else{
eq("id",Long.parseLong("-10"))
}
if(!popedom){
eq('username',g.loggedInUsername().toString())
}
eq("enabled",true)
}
}.each{u->
listResult.userNameKeylist += (u[1] + ':' + u[0])
listResult.contractRealNameMap[u[0]] = u[1]
}
return ChannelInfo.createCriteria().list {
if (!params.channelType) {
/**
* 频道管理
*/
and {
eq('relatedId', 0)
}
order('sortIndex', 'asc')
} else {
/**
* 内容管理
*/
or {
and {
not {
eq('relatedId', 0)
}
eq('relatedId', params.channelType?.toInteger())
}
eq('id', params.channelType?.toLong())
}
order('sortContent', 'asc')
}
}
分页
AdsPosition.createCriteria().list {
and {
eq('positionGroup', 'HOME_RECOMMENDATION')
}
order('positionIndex', 'asc')
maxResults(Integer.parseInt("${params.max}"))
firstResult(Integer.parseInt("${params?.offset ? params.offset:0}"))
}
listResult.total = AdsPosition.createCriteria().get {
projections {
rowCount()
}
and {
eq('positionGroup', 'HOME_RECOMMENDATION')
}
}