在MySQL环境中,我使用jdbc addBatch()
和executeBatch()
运行批量更新时,整个查询不会运行,
只有最后一个查询才能正常运行。
我不知道该检查什么。
我的源代码
ps = conn.prepareStatement ("update TEMP set LAST_UPDATE_DT = SYSDATE () where id = '1001'");
ps.addBatch ();
ps = conn.prepareStatement ("update TEMP set LAST_UPDATE_DT = SYSDATE () where id = '1002'");
ps.addBatch ();
ps = conn.prepareStatement ("update TEMP set LAST_UPDATE_DT = SYSDATE () where id = '1003'");
ps.addBatch ();
Int result [] = ps.executeBatch ();
答案 0 :(得分:1)
这大多是错误地使用预准备语句。当你写这篇文章时,你可能会想到简单的陈述。对于准备好的语句批处理,方法略有不同
// first create the prepared statement
ps = conn.prepareStatement ("update TEMP set LAST_UPDATE_DT = SYSDATE () where id = ?");
// then bind to it.
ps.setInt(1,1001);
ps.addBatch();
// then bind again
ps.setInt(1,1002);
ps.addBatch();
// and again
ps.setInt(1,1003);
ps.addBatch();
int result [] = ps.executeBatch ();