mysql executeBatch()错误..?

时间:2016-12-23 04:25:06

标签: java mysql sql jdbc prepared-statement

在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 ();

1 个答案:

答案 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 ();