【发布时间】:2014-04-03 01:28:45
【问题描述】:
我有一个这样的准备好的声明
insert into mytable (id, name) values (?,?) , (?,?);
我在每个preparedStatement 中使用多行,因为我看到了巨大的速度提升。
现在,如果我要输入奇数行,那么 preparedStatement.executeBatch() 不会在数据库中输入任何行。它不会抛出任何错误。
这是我插入值的方式
int count =0;
for(int i=0; i<size; i++) {
statement.setObject(1, id[i]);
statement.setObject(2, name[i]);
//second row
if(i+1 != size) {
statement.setObject(1, id[i+1]);
statement.setObject(2, name[i+1]);
}
statement.addBatch();
if (count % 200 == 0 && count >0) {
statement.executeBatch();
}
}
statement.executeBatch();
我该怎么做才能让它发挥作用?
【问题讨论】:
-
您可以有多个 PreparedStatement,每个用于一组不同的输入
-
@codeNinja:大小是如何计算的?您能否添加更多在您发布的代码之前执行的代码。
标签: java mysql prepared-statement