/**
* 执行无返回值的SQL语句
*/
public int executeUpdate(String sql, Object[] obj) throws SQLException {
int ri = 0;
try {
pstm = con.prepareStatement(sql);
for (int i=0; i<obj.length; i++) {
pstm.setObject(i+1, obj[i]);
}
ri = pstm.executeUpdate();
} catch (Exception e) {
log.error("执行"+sql+"出错!", e);
e.printStackTrace();
} finally {
baseConnect.backConnection(con);
}
return ri;
}
上面这方法可以添加、修改和删除记录这个方法是不是要加“synchronized”呢
如果不加,会不会出现同时两个用户一个在修改,而另一个已经将此记录删除掉了,产生修改出错呢?求解答!!!
* 执行无返回值的SQL语句
*/
public int executeUpdate(String sql, Object[] obj) throws SQLException {
int ri = 0;
try {
pstm = con.prepareStatement(sql);
for (int i=0; i<obj.length; i++) {
pstm.setObject(i+1, obj[i]);
}
ri = pstm.executeUpdate();
} catch (Exception e) {
log.error("执行"+sql+"出错!", e);
e.printStackTrace();
} finally {
baseConnect.backConnection(con);
}
return ri;
}
上面这方法可以添加、修改和删除记录这个方法是不是要加“synchronized”呢
如果不加,会不会出现同时两个用户一个在修改,而另一个已经将此记录删除掉了,产生修改出错呢?求解答!!!
跟并发无关,即便都是串行执行,也会存在这种风险;修改出错并不会导致数据不一致之类的问题,只不过就是个修改失败而已,所以根本不是问题。
//从连接池中获取方法
}
从连接池中获取连接是加锁的
这样符合1楼说的“每个线程使用独立的Connection”