加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

groovy sql eachRow和rows方法

发布时间:2020-12-14 16:30:41 所属栏目:大数据 来源:网络整理
导读:我是新来的grails和groovy. 任何人都可以向我解释这两种groovy sql方法的区别 sql.eachRowsql.rows 还有哪些更有效率? 我正在处理从数据库检索数据的应用程序(结果集非常巨大),并将其写入CSV文件或返回JSON格式. 我想知道上面提到的两种方法中的哪一种用于
我是新来的grails和groovy.
任何人都可以向我解释这两种groovy sql方法的区别

sql.eachRow
sql.rows

还有哪些更有效率?

我正在处理从数据库检索数据的应用程序(结果集非常巨大),并将其写入CSV文件或返回JSON格式.

我想知道上面提到的两种方法中的哪一种用于使过程更快更有效率.

解决方法

Can anyone please explain to me the
difference between these two groovy
sql methods sql.eachRow sql.rows

很难说出你所指的哪两种方法2,因为每个方法都有大量的重载版本.然而,在所有情况下,everyRow什么都不返回

void eachRow(String sql,Closure closure)

而行返回一列行

List rows(String sql)

所以如果你使用eachRow,那么作为第二个参数传入的闭包应该处理每一行,例如

sql.eachRow("select * from PERSON where lastname = 'murphy'") { row ->
    println "$row.firstname"
}

而如果您使用行,则返回行,因此应由调用方处理.

rows("select * from PERSON where lastname = 'murphy'").each {row ->
    println "$row.firstname"        
}

Also,which is more efficient?

这个问题几乎无法回答.即使我自己实施了这些方法,也不可能知道哪一种对你来说会更好,因为我不知道

>你正在使用什么硬件
>您要定位的JVM
>你正在使用什么版本的Groovy
>你将要通过什么参数
>这种方法是否是应用程序性能的瓶颈

或影响方法性能的任何其他因素,这些因素不能仅从源代码确定.您可以通过测量每个方法的性能,为您提供哪种方法更有效的问题的唯一方法.

尽管我上面说过的一切,如果这两者之间的表现差异是非常重要的,我会感到惊讶,所以如果我是你,我会选择哪一个你找到更方便.如果稍后发现这种方法是一个性能瓶颈,请尝试使用另一个方法(但我敢打赌你一美元到一角钱,这没有什么区别).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读