遇到一个困惑的问题,知道的给我解释解释下,困惑了一下午
public boolean addUpDeData(Connection con, String sql, Object... obj)
throws SQLException{
boolean bool = false;
if(con !=null && !con.isClosed()){
conn = con;
if(isAutoCommit == 1)
conn.setAutoCommit(false);
if (null != sql && !"".equals(sql) && null != obj && !"".equals(obj)) {
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
pstmt = conn.prepareStatement(sql);
for (int i = 0; i < obj.length; i++) {
pstmt.setObject(i + 1, obj[i]);
}
if (pstmt.executeUpdate() > 0) {
bool = true;
if(isAutoCommit == 1)
conn.commit();
}else{
if(isAutoCommit == 0)
conn.rollback();
}
}else{
//这句没输出
System.out.println("医嘱上传失败,参数 = "+sql+" "+Arrays.toString(obj));
}
}else{
//这句没输出
System.out.println("当前连接不可用,请重新获取连接...");
}
return bool;
}
我循环调用这个方法修改多条数据,有时会有一条数据修改不成功,连续执行几次,几分钟后又能成功,Log输出显示是同一条修改SQL,且条件参数都一样;拿着修改条件的参数去PL/SQL里面查询是可以查到数据的。真的困惑,各位要是知道的,给我解答下,谢谢