我的代码为:
String updateQuery = "Update "+table+" Set "+columnToModify+"=:newvalue Where "+keyColumn+"=:keyvalue";
int[] modifyCount = sql.withBatch(batchSize, updateQuery) { ps ->
keyValue.each { k,v ->
ps.addBatch(keyvalue:k, newvalue:v)
}
}
batchSize
是100,而keyValue
大小为221。
所以我希望三批散发大小100,100,21。ModifyCount的三个条目为100,100,21。
但ModifyCount具有221个值1的条目。
我在这里缺少什么?
结果与批处理大小无关,而与执行的查询有关。因此,给出的是,您的数据库包含每个keyvalue
的一行,您可以获得每个执行的查询的 221 (此处不关心批处理大小(和更新的 1 由每个执行。
来自文档:
返回:
一个更新数组计数,其中包含批处理中每个绑定的一个元素中的一个元素。数组的元素按执行命令的顺序排序。