jdbc什么情况下启用事务?
只有当一次执行多个sql语句的时候开启事务才有用,比如
PreparedStatement ps=null;
Connection conn=getConn();
try{
#1
conn.setAutoCommit(false);
String sql1="insert into table values(?)";
String sql2="delete from table where id=1";
ps=conn.preparedStatement(sql1);
ps.setObject(1,new Object());
ps.executeQuery(sql1);
ps.executeQuery(sql2);
#4
ps.commit();
}catch(SQLException e){
#2
conn.rollback();
}finally{
#3
conn.setAutoCommit(true);
closeConn(conn);
}
如果一次只执行一条sql语句,则不需要开启事务
问题:一次执行两条需要参数的sql语句,PreparedStatement怎么判断哪个参数属于哪个语句?