executeBatch更新不會繼續執行其餘的命令,如果其中一個執行失敗。無論如何還是有其他方法來執行批處理,其中即使一個命令執行失敗,其餘的命令仍然會成功執行。不使用executeUpdate,因爲它佔用大量時間並逐個執行查詢。替代執行jdbc中的批處理,具有不同的失敗處理?
3
A
回答
2
文檔說這個:
當批量更新操作期間發生錯誤時拋出的異常。除了 由SQLException提供的信息之外,BatchUpdateException爲批量更新期間成功執行的所有命令提供了更新 計數,即在錯誤發生之前執行的所有 命令。 更新計數數組中元素的順序對應於命令添加到批處理的順序。 在批量更新中的命令未能正確執行並拋出BatchUpdateException爲 之後,驅動程序可能會或可能不會繼續處理批次中的其餘命令。如果驅動程序在故障發生後繼續處理,則通過方法 BatchUpdateException.getUpdateCounts返回的數組將對批處理中的每個命令都有一個元素,而不僅僅是在錯誤發生前成功執行的命令的元素。 在驅動程序繼續處理命令的情況下,任何失敗的命令 的數組元素是Statement.EXECUTE_FAILED。
所以據我所知,它取決於你使用的jdbc驅動程序。
也許更好的解決方案是找到問題的原因並解決它?
相關問題
- 1. 批處理文件執行失敗,jenkins的PostBuildScript插件
- 2. Spring批處理,再次處理失敗的文件,跳過成功處理
- 3. 批處理文件執行
- 4. 「批處理執行失敗,HTTP狀態碼爲BadGateway,端點
- 5. 您是否知道hadoop的批處理日誌處理工具(zohmg替代品)?
- 6. Drupal 6批處理不執行
- 7. astyanax突變批次失敗處理
- 8. 批處理文件IF ELSE失敗
- 9. MSBUILD批處理任務執行批處理中的每個語句
- 10. 在jdbc批處理中處理100,000條記錄更新
- 11. 的MSBuild PSEXEC執行批處理文件
- 12. 執行的Windows批處理文件
- 13. org.springframework.web.util.NestedServletException:處理程序處理失敗
- 14. itunesconnect處理失敗
- 15. 執行批處理文件在不同的目錄
- 16. 在C#中執行批處理文件#
- 17. 在c#中執行批處理文件
- 18. 在批處理文件中執行httprequest
- 19. 在批處理中執行SQL腳本
- 20. 在批處理中執行日期
- 21. 在Sybase中創建JDBC批處理
- 22. 批處理文件subraction /替代
- 23. 批處理:替代多字符EOL
- 24. org.hibernate.exception.DataException:無法執行JDBC批處理更新
- 25. 從同一批處理文件中讀取批處理文件的第一行?
- 26. Laravel:處理失敗的findOrFail()
- 27. 在不使用BLOB的情況下執行批處理執行
- 28. 彈簧批處理 - 命令行執行
- 29. 爲批處理中的每個元素執行一些代碼
- 30. Spring批處理並行處理
嗨,Alexandr,感謝您的回覆。 – vicky
是的,但我正在處理的程序會插入數百萬條記錄。如果程序本身處理流程,並且允許在其中一個失敗時執行其餘的批處理命令,它也將是一個更好的錯誤處理功能。與我一起工作的jdbc驅動程序在故障後不支持處理。因此,我需要一個替代方法或一種方法來使executeBatch工作。謝謝:) – vicky
如果你真的要插入數百萬條記錄,我會建議你使用一個特殊的數據庫供應商特定的工具,允許將數據加載到數據庫服務器。你的程序只能準備特殊格式的數據。然後,您應用所選工具。 – Alexandr