如果在SQL中需要同时执行多个SQL语句,而且其中任意一个SQL执行失败其他执行过的都撤销,就需要用到事务,jdbc,Oracle中使用事务是如下方式。
Connection conn=DriverManager.getConnection(url);
try {
//设置自动提交模式为否
conn.setAutoCommit(false);
String sql="update user set userId="+id;
String sql2="update user set username='xxx' and userid="+id;
conn.prepareStatement(sql).execute();
conn.prepareStatement(sql2).execute();
//执行到这儿说明执行成功,无任何错误,手动提交事务
conn.commit();
return true;
//如果出错就执行异常
} catch (Exception e) {
//回滚事务,撤销在当前事务中进行的所有更改,
conn.rollback();
e.printStackTrace();
return false;
}
finally{
conn.close();
}
这样只有所有SQL语句都执行成功后才能提交事务,改变结果,否则就撤销事务,更改失效。
本文介绍如何在JDBC中使用Oracle数据库的事务处理来确保多个SQL语句的原子性操作。通过设置连接的自动提交模式为否,并使用try-catch-finally结构来管理提交(commit)和回滚(rollback),确保所有SQL语句成功执行后才提交事务。
456

被折叠的 条评论
为什么被折叠?



