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