我通常不会发布有关 API 的问题,但我完全被难住了。我正在尝试使用 groovy 的 withBatch() 方法,它让我大吃一惊。这是我正在尝试的:
connection.withBatch ('insert into SCHEMA.TABLE(VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE) values (?,?,?,?,?,?,?,?,?,?,?,?)') { ps ->
for(def dom : domain.domainData)
{
def values = dom.collect {key, value -> value}
ps.addBatch(values)
}
我不断收到这个:
groovy.lang.MissingMethodException: No signature of method: groovy.sql.Sql.withBatch() is applicable for argument types: (java.lang.String, ...updater.InsertAllService$_updateData_closure1) values: [insert into SCHEMA.TABLE(VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE,VALUE) values (?,?,?,?,?,?,?,?,?,?,?,?), ...updater.InsertAllService$_updateData_closure1@74eb011d] Possible solutions: withBatch(groovy.lang.Closure), withBatch(int, groovy.lang.Closure), isWithinBatch()
(出于隐私原因,我不得不取出值和包名称)
我整个早上都在尝试不同的事情(包括其他 withBatch 方法),但我不断收到同样的错误。有人看到我在做什么吗?谢谢!
最佳答案
Groovy 是什么版本?接受 String 和 Closure 的 withBatch
变体仅在 Groovy 1.8 中引入,错误消息中的“可能的解决方案”表明您使用的是 Groovy 1.7。
关于java - groovy sql withbatch 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12411159/