我正在使用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