如何在groovy sql中获取行数

如何在groovy sql中获取行数,groovy,Groovy,我是groovy的新手。想知道如何从下面的sql查询返回的给定sql结果中获取行数。我在谷歌上搜索了很多,但没有找到合适的解决方案 这是我的sql查询类代码 def sql = Sql.newInstance(dataSource); try { data = sql.rows("select field_value,form_table_column_name from form_tbl where form_id=1");

我是groovy的新手。想知道如何从下面的sql查询返回的给定sql结果中获取行数。我在谷歌上搜索了很多,但没有找到合适的解决方案

这是我的sql查询类代码

def sql = Sql.newInstance(dataSource);

    try
    {
        data = sql.rows("select field_value,form_table_column_name from 
               form_tbl where form_id=1");
        sql_one.close()

    } catch(Exception e) {

       System.out.println(e)      
    }

要获取返回的记录的计数或大小,请使用
data.size()

以下代码获取grails中的行数。首先,自动连接服务中的数据源,并从中创建一个Sql对象,如图所示

Sql sql = new Sql(datasource)   
然后使用下面的代码,你可以得到尽可能长的计数

def result = sql.firstRow('select count(*) as cont from <table>')
long count = result.cont
def result=sql.firstRow('select count(*)as cont from')
长计数=result.cont
不需要从数据库中获取完整的记录。firstRow()可以很好地执行单行sql语句。如果SQL结果没有行,Elvis运算符将提供帮助

def cnt = SQL
     .firstRow('SELECT COUNT(*) AS cnt FROM form_tbl WHERE form_id=:id', id:1)
     ?.cnt

请记住,data.size()在使用count(*)时仍将返回1,即使它返回0,但行计数仍=1

data.size()应提供返回的记录计数。谢谢:)已工作。Netbeans没有给我一个自动提示“大小”不是问题。将其作为答案添加(:虽然此代码片段可能会解决此问题,但确实有助于提高您的帖子质量。请记住,您将在将来为读者回答此问题,而这些人可能不知道您的代码建议的原因。这应该是可接受的答案。data.size()在前面的回答中,只是数组的大小,但对于更大的数据集,您将使用分页和数据。size()将只返回页面大小,而不是匹配的记录计数。此外,如果您的目的只是获取计数,那么data.size()将更糟,因为它将从数据库获取所有记录。
def cnt = SQL
     .firstRow('SELECT COUNT(*) AS cnt FROM form_tbl WHERE form_id=:id', id:1)
     ?.cnt