groovy sql eachRow和rows方法
我是新来的grails和groovy.
任何人都可以向我解释这两种groovy sql方法的区别 sql.eachRow sql.rows 还有哪些更有效率? 我正在处理从数据库检索数据的应用程序(结果集非常巨大),并将其写入CSV文件或返回JSON格式. 我想知道上面提到的两种方法中的哪一种用于使过程更快更有效率. 解决方法
很难说出你所指的哪两种方法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" }
这个问题几乎无法回答.即使我自己实施了这些方法,也不可能知道哪一种对你来说会更好,因为我不知道 >你正在使用什么硬件 或影响方法性能的任何其他因素,这些因素不能仅从源代码确定.您可以通过测量每个方法的性能,为您提供哪种方法更有效的问题的唯一方法. 尽管我上面说过的一切,如果这两者之间的表现差异是非常重要的,我会感到惊讶,所以如果我是你,我会选择哪一个你找到更方便.如果稍后发现这种方法是一个性能瓶颈,请尝试使用另一个方法(但我敢打赌你一美元到一角钱,这没有什么区别). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |