gpt4 book ai didi

sql - groovy sql eachRow 和 rows 方法

转载 作者:行者123 更新时间:2023-12-04 02:44:18 24 4
gpt4 key购买 nike

我是 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 个方法 2,因为每种方法都有大量的重载版本。但是,在所有情况下, eachRow什么都不返回
void eachRow(String sql, Closure closure)

rows返回行列表
List rows(String sql) 

所以如果你使用 eachRow ,作为第二个参数传入的闭包应该处理每一行,例如
sql.eachRow("select * from PERSON where lastname = 'murphy'") { row ->
println "$row.firstname"
}

而如果你使用 rows行被返回,因此应该由调用者处理,例如
rows("select * from PERSON where lastname = 'murphy'").each {row ->
println "$row.firstname"
}

Also, which is more efficient?



这个问题几乎无解。即使我自己实现了这些方法,也无法知道哪种方法会更好 为您因为我不知道
  • 您使用的是什么硬件
  • 您的目标是什么 JVM
  • 您使用的是什么版本的 Groovy
  • 您将传递哪些参数
  • 此方法是否是应用程序性能的瓶颈

  • 或任何其他影响方法性能的因素,这些因素无法仅从源代码中确定。您可以获得有关哪种方法更有效的有用答案的唯一方法 为您是通过衡量每个人的表现。

    尽管我上面说了这么多,但如果这两者之间的性能差异在任何方面都很显着,我会感到惊讶,所以如果我是你,我会选择你觉得更方便的那个。如果您稍后发现此方法是性能瓶颈,请尝试改用另一种(但我敢打赌,一分钱一分货都没有区别)。

    关于sql - groovy sql eachRow 和 rows 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6116198/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com