我正在使用jdbc在java中对1000条记录进行批量更新。其中800条记录成功更新,200条记录失败。所以我想检查批量更新查询哪些所有200条记录都未能更新,我将使用批量插入将它们插入到数据库中。我怎么能做到这一点?发现批量更新的哪些记录失败
-1
A
回答
2
executeBath()
方法从Statement
返回一个整数数组(每个命令执行一个整数)。每个整数表示更新计数。如果1或更大,则更新成功完成;如果为0,则不会使用其各自的命令更新记录。
实施例:
List<YourClass> objectsToUpdate = getObjectsToUpdate();
for (YourClass object : objectsToUpdate) {
String updateCommand = generateUpdateCommand(object);
statement.addBatch(updateCommand);
}
int[] results = statement.executeBatch();
List<YourClass> notUpdated = new ArrayList<YourObject>();
for (int i = 0; i < results.length; i++) {
if (results[i] == 0) {
notUpdated.add(objectsToUpdate.get(i));
}
}
这只是展示的算法。考虑使用PreparedStatement
而不是Statement
。
0
为了完整起见,说使用批量更新时,JDBC驱动程序也可以返回(作为整数数组的一部分)Statement.SUCCESS_NO_INFO(当没有关于更新行的信息时)或Statement.EXECUTE_FAILED(当发生异常时)
某些JDBC驱动程序甚至可能会在异常情况下停止执行进一步的语句(更新)。
相关问题
- 1. 如何在更新1000条记录时发现哪条记录失败
- 2. 批量更新失败?
- 3. 更新记录失败
- 4. mysql批量记录更新?
- 5. C#MySQLCommand批量更新失败
- 6. 更新记录,如果失败,插入记录,然后更新
- 7. IO Monad中的记录更新失败?
- 8. 如何跟踪批量更新中的哪一行更新失败
- 9. php mysql批量记录更新?
- 10. 有些记录没有用PHP和MySql批量更新
- 11. Kinesis阅读失败的某些记录
- 12. MySQL批量插入失败的记录行
- 13. 如何使用NUnit记录测试名称来记录哪些测试失败以及哪些测试成功?
- 14. 使用更新功能批量更新记录
- 15. 批量更新更新多个记录在春天mvc与mysql
- 16. 如何重新发送批量失败的短信
- 17. 批量更新不发送
- 18. 更新大量的记录
- 19. Doctrine2批量更新失败并出现致命内存错误。麻烦“排序”?
- 20. Django,在哪里更新失败的登录尝试,为什么?
- 21. Rails - 批处理记录更新程序在哪里?
- 22. 记录未失败
- 23. 批量更改目录到新目录
- 24. 批量更新到Gridview失败,HasControls返回False
- 25. 捕捉UICollectionView在Swift中执行批量更新断言失败?
- 26. 批量更新在主表记录上设置的子表记录
- 27. 更新现有记录
- 28. 上更新现有记录
- 29. SQL复杂的计算和更新批量记录
- 30. ScriptDB:用于快速批量更新记录的自定义ID?
不是你的批量查询返回一个int数组来反映记录更新吗? – TheLostMind
是的,但我想知道哪些记录没有更新 –
返回的数组中有值为0的所有记录 – TheLostMind