我正在嘗試使用批量更新來更新表中的數據。當我更新數據時,會出現一些故障。我想獲取失敗查詢的更新語句。例如,如果失敗的查詢是"update table set abc= 123"
。然後我想讓異常處理程序返回這個SQL查詢。使用BatchUpdateExcpetion進行JDBC BatchUpdate異常處理
我已經嘗試了幾種方法來獲取SQL查詢,但我無法這樣做。
下面是代碼:
String line=null;
int cnt=0;
int batchSize=100;
BufferedReader br2=new BufferedReader(new FileReader("clean.txt"));
stmt1=conn.createStatement();
while((line = br2.readLine()) != null)
{
try {
String sql = line;
stmt1.addBatch(sql);
//System.out.println(cnt);
if(++cnt % batchSize == 0)
{
stmt1.executeBatch();
conn.commit();
}
}
catch (BatchUpdateException ex) {
System.out.println(ex.getLocalizedMessage());
int[] updateCount = ex.getUpdateCounts();
int cnt1 = 1;
for (int i : updateCount) {
if (i == Statement.EXECUTE_FAILED) {
System.out.println("Error on request " + cnt1 +": Execute failed");
} else {
System.out.println("Request " + cnt1 +": OK");
}
cnt1++;
}
}
}
System.out.println("done");
br2.close();
請讓我知道我應該怎麼做才能失敗的SQL查詢。所以,如果我有查詢,我可以再次將它存儲在文件中。