我的代码是:
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。
我在这里想念什么?
答案 0 :(得分:1)
结果与批处理大小无关,而与执行的查询有关。因此,假设您的数据库中的每个keyvalue
都包含一行,则对于执行的每个查询,您都会得到 221 (这里不关心批大小),而您得到的 1 分别执行。
返回:
一组更新计数,其中包含批处理中每个绑定的一个元素。数组的元素根据命令执行的顺序进行排序。