Grails SQL查询



Grails大多查询是基于Domain类的find方法和criteria来执行的,甚至执行HQL,也必须是以Domain来作为主体的,比如:Book.executeQuery("from book where id = ?",11),如果查询的数据与Domain类无关,这几种方式都不可行了。


Grails也提供了非常简单的方式,可以使用Groovy SQL来做,简单的代码如下:


首先在service或者controller中定义dataSource


def dataSource


然后在Servie或者Controller方法中如下:


def db = new groovy.sql.Sql(dataSource)

def resultMap

db.eachRow('select * from book'){

      resultMap.title = it.title

      resultMap.author = it.author

}


groovy sql提供了不少FETCHING DATA的方法和接口如下:


void eachRow String statement { row -> code }
void eachRow String prepStmt, List values { row -> code }
void eachRow GString prepStmt { row -> code }

void query String statement { resultSet -> code }
void query String prepStmt, List values { resultSet -> code }
void query GString prepStmt { resultSet -> code }
List rows String statement
List rows String prepStmt, List values
Object firstRow String statement
Object firstRow String prepStmt, List values

你可能感兴趣的:(sql,grails,groovy)