我正在尝试使用批量更新来更新表中的数据。当我更新数据时,会出现一些故障。我想获取失败查询的更新语句。例如,如果失败的查询是"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查询。所以,如果我有查询,我可以再次将它存储在文件中。