我使用jdbc中的批量处理时,如果在commit时有一句sql出错,在catch异常时如何能定位到是那一条sql出的错误?例如我批量插入,但是有一条记录违反主键约束,这时候返回异常,但是无法定位到底是哪条出错。代码如下:
public String Commit(String sql[],int c) throws Exception{
String ret;
ret="success";
try{
m_conn.setAutoCommit(false);
for(int j=0;j<c;j++){
if(!sql[j].equals("")){
m_stmt.addBatch(sql[j]);
}
}
m_stmt.executeBatch();
m_conn.commit();
}
catch(Exception ex){
m_conn.rollback();
System.err.println(ex.getMessage());
ret=ex.getMessage();
}
return ret;
}
public String Commit(String sql[],int c) throws Exception{
String ret;
ret="success";
try{
m_conn.setAutoCommit(false);
for(int j=0;j<c;j++){
if(!sql[j].equals("")){
m_stmt.addBatch(sql[j]);
}
}
m_stmt.executeBatch();
m_conn.commit();
}
catch(Exception ex){
m_conn.rollback();
System.err.println(ex.getMessage());
ret=ex.getMessage();
}
return ret;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货