将groovy sql的sql.eachRow()存储到List中

时间:2012-08-13 04:20:15

标签: grails groovy

你知道如何存储

的结果吗?
    sql.eachRow()
的groovy sql到列表?例如def personList = []?

示例:

    sql.eachRow('select lastname from users where id='active')

我想要的是存储结果,即。 lastnames到列表即def personlist = []; 我知道我可以通过namedQuery轻松完成这项工作,而且我已经完成了。但他们是这个的一些潜在原因。提前谢谢。

3 个答案:

答案 0 :(得分:3)

def reqdColName = "lastname"
def query = "select $reqdColName from users where id='active'"

直接选项是使用rows()方法。

def list= Sql.rows(query) //returns groovyrowresult as list

另一种选择是你可以使用executeQuery来获取查询的结果集,从而得到一个数组/列表。

def array = Sql.executeQuery(query).getArray(reqdColName)

//If you need as a list
def personList = Arrays.asList(array) 

答案 1 :(得分:1)

我知道很久以前就已经问过这个问题了,但我觉得答案可能对那里的人有所帮助。

  def personlist = []
    sql = Sql.newInstance(url, username, password, driver)
    query = "select $reqdColName from users where id='active'"
    sql.eachRow(query)
    {
       row-> personlist << row.toString()
    }
    sql.close()

    personlist.each{println it}  // you can also return the list

答案 2 :(得分:0)

def lastnames = sql.rows("select lastname from users where id='active'")*.lastname