【发布时间】:2017-01-30 00:09:31
【问题描述】:
我正在尝试使用批量更新来更新表中的数据。当我更新数据时,出现了一些故障。我想获取失败查询的更新语句。例如,如果失败的查询是"update table set abc= 123"。然后我希望异常处理程序返回这个 SQL 查询。
我尝试了几种方法来获取 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 查询。因此,如果我有查询,我可以再次将其存储在文件中。
【问题讨论】:
标签: java mysql jdbc exception-handling