Grails 将groovy sql的sql.eachRow()存储到列表中

Grails 将groovy sql的sql.eachRow()存储到列表中,grails,groovy,Grails,Groovy,您知道如何存储来自的结果吗 sql.eachRow() 将groovy sql添加到列表中?例如,def personList=[] 例如: sql.eachRow('select lastname from users where id='active') 我想要的是将结果ie.lastnames存储到列表ie def personlist=[]; 我知道我可以通过namedQuery轻松地完成这项工作,而且我已经完成了。但他们的观点是一些潜在的原因。提前谢谢 def re

您知道如何存储来自的结果吗

    sql.eachRow()
将groovy sql添加到列表中?例如,def personList=[]

例如:

    sql.eachRow('select lastname from users where id='active')
我想要的是将结果ie.lastnames存储到列表ie def personlist=[]; 我知道我可以通过namedQuery轻松地完成这项工作,而且我已经完成了。但他们的观点是一些潜在的原因。提前谢谢

def reqdColName = "lastname"
def query = "select $reqdColName from users where id='active'"
直接的选择是使用()方法


另一个选项是,您可以使用获取查询的结果集,从而获取其中的数组/列表

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

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

我知道这个问题很久以前就被问到了,但我仍然觉得这个答案可能对其他人有所帮助

  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
def personlist=[]
sql=sql.newInstance(url、用户名、密码、驱动程序)
query=“从id='active'所在的用户中选择$reqdColName”
sql.eachRow(查询)
{
行->个人列表
  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
def personList = sql.rows("select lastname from users where id='active'")*.lastname