2012-11-11 41 views
1

我正在使用PreparedStatement addBatch。打印失敗的行PreparedStatement addBatch

我應該如何處理當行未能插入喜歡的場景?

例如,假設出的1000行進行插入時,第100行失敗插入和程序結束突然不插入剩餘行(即,從第100行到第1000行)。

我想打印故障排,所以我將能夠檢查問題。

+0

如果「程序突然結束」,這聽起來像是一個例外。你有沒有試圖抓住異常? –

+0

是的,但我想要它試圖執行的最後一個sql查詢,而不是它失敗的原因 – MoShe

+0

我使用mssql,所以我應該如何使用mssql驅動程序 – MoShe

回答

3

沒有爲ExecuteBatch方法,錯誤處理和返回值不規範的行爲,這取決於你使用的DBMS和JDBC驅動程序。 例如,Oracle驅動程序在BatchUpdateException中返回一個數組,每個成功的記錄都有一個元素。數組的索引與添加到語句中的批次的索引對齊,這意味着最大的數組索引指示已成功插入的最後一批記錄。 但是這對您的特定DMBS /驅動程序組合無效,因此檢查它的唯一方法是使用調試器,模擬錯誤,在捕獲異常的代碼處設置斷點並查看異常對象。