将Groovy SQL中的sql.eachRow()存储到列表(List)中

4
你知道如何存储来自 IT 技术方面的结果吗?
    sql.eachRow()

如何将Groovy SQL查询结果转化为列表?例如:def personList = []?
示例:
    sql.eachRow('select lastname from users where id='active')

我想要的是将结果(即姓氏)存储到列表中,例如def personlist = []; 我知道可以通过namedQuery轻松实现这一点,我已经做过了。但是这其中有一些潜在的原因。提前致谢。
3个回答

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

直接的选择是使用 rows() 方法。
def list= Sql.rows(query) //returns groovyrowresult as list

另一个选项是您可以使用executeQuery,获取查询的结果集,从而在其上获得数组/列表。链接为:executeQuery
def array = Sql.executeQuery(query).getArray(reqdColName)

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

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接