JDBC事务保存点,即事部分回滚
来源:互联网 发布:人工智能英语作文话题 编辑:程序博客网 时间:2024/05/03 18:59
转载http://zmx.iteye.com/blog/371005
JDBC事务保存点,即事部分回滚
JDBC中的事务保存点,即事务发生回滚的时候,回滚到保存点那里去,事务开始到保存点之间的操作不用回滚.
事务(SavePoint)
l 当只想撤销事务中的部分操作时可使用SavePoint
l SavePoint sp = connection.setSavepoint();
l connection.rollerbak(sp); //回滚到那个事务点上去
l connection.commit();
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Savepoint;
import java.sql.Statement;
publicclass SavePointTest {
publicstaticvoid main(String[] args) throws SQLException {
test();
}
staticvoid test()throws SQLException {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
Savepoint sp = null;
try {
conn = JdbcUtils.getConnection();
conn.setAutoCommit(false);
st = conn.createStatement();
String sql = "update user set money=money-10 where id=1";
st.executeUpdate(sql);
sp = conn.setSavepoint();
sql = "update user set money=money-10 where id=3";
st.executeUpdate(sql);
sql = "select money from user where id=2";
rs = st.executeQuery(sql);
float money = 0.0f;
if (rs.next()) {
money = rs.getFloat("money");
}
if (money > 300)
thrownew RuntimeException("已经超过最大值!");
sql = "update user set money=money+10 where id=2";
st.executeUpdate(sql);
conn.commit();
} catch (RuntimeException e) {
if (conn !=null && sp !=null) {
conn.rollback(sp);//回滚到那个事务点上去
conn.commit();
}
throw e;
} catch (SQLException e) {
if (conn !=null)
conn.rollback();
throw e;
} finally {
JdbcUtils.free(rs, st, conn);
}
}
}
- JDBC事务保存点,即事部分回滚
- MySQL事务部分回滚-回滚到指定保存点
- 事务+事务特性+提交事务+回滚事务+保存点
- 事务提交、回滚、保存点
- 在Java的JDBC使用中设置事务回滚的保存点的方法
- jdbc事务-回滚
- 关于设置事务回滚保存点的设置
- oracle事务 行级锁 保存点 回滚 提交
- JDBC-数据库事务回滚
- SQL事务实例解释事务,回滚,保存点的作用y与用法
- JDBC事务的保存点处理
- JDBC处理事务的保存点
- Jdbc中事务的保存点解析
- JDBC之设立事务的保存点
- 回滚JDBC事务的代码示例:
- JDBC 事务的回滚 提交
- JDBC 实现事务的回滚
- jdbc中的事务回滚管理
- 【数据结构】普里姆算法
- Source Depot operation
- Git、Gerrit与Jenkins/Hudson CI服务器
- 地址栏
- 二叉树前序、中序、后序遍历相互求法
- JDBC事务保存点,即事部分回滚
- git cherry-pick简介
- POJ 2337 有向图的欧拉路径
- 无限级审核流程
- mybatis与ibatIS的区别
- cocos2d-x获得系统的语言
- Maximum Flow 练习:RookAttack,最大二分图匹配
- Uva 11401 - Triangle Counting 解题报告(计数)
- Arduino浮点数转换为字符串