事务是为了确保数据库的完整性。当所有语句都顺利执行后,事务可以提交,否则,如果其中某个语句遇到错误,那么事务将被回滚,就好像没有执行过任何命令一样。
如果将更新语句组合成一个事务,那么事务要么成功执行所有的操作并被提交,要么在中间某个位置发生失败,在这种出现失败的情况下,可以执行回滚操作,
将数据库自动撤销回上次提交事务以来的所有更新操作产生的影响。
默认情况下,数据库处于自动提交模式。每个SQL语句一旦被执行便会被提交给数据库,一旦命令提交,就无法对他进行回滚操作。
一、 事务的回滚
Connection conn = DriverManager.getCommection(url,username,password);
可以使用 conn.setAutoCommit(false);来关闭自动提交。
然后调用Statement stat=conn.createStatement();来创建语句对象。
用stat.executeUpdate(SQL语句);执行sql命令,执行完之后,调用conn.commit()方法,出现错误则调用conn.rollback()进行回滚。
二、 保存点的使用
为了更好的控制事务的回滚操作,我们可以设置保存点(Save point),创建一个保存点意味着稍后只需返回到这个点,而不是整个事务的开头
Connection conn = DriverManager.getCommection(url,username,password);
Statement stat=conn.createStatement();
stat.executeUpdate(SQL语句);
Savepoint svpt= conn.setSavepoint();
stat.executeUpdate(SQL语句);
if(...)
{
conn.rollback(avpt);
}
else
{
conn.commit();
}
这里,我们使用了匿名保存点,也可以给他添加名字如
Savepoint svpt= conn.setSavepoint("savepoint");
当使用一个保存点完成所有操作后,必须释放:
conn.releaseSavepoint(svpt);
分享到:
相关推荐
主要介绍了C#中增加SQLite事务操作支持与使用方法,结合实例形式分析了C#中针对SQLite事务操作的添加及使用技巧,需要的朋友可以参考下
不同的事务操作代码,包括 JTA全局事务 JDBC局部事务 以及包含了Hibernate事务
Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 --...
spring事务操作试验 博客地址:https://blog.csdn.net/u010476739/article/details/99130972
} 通常都是上述的写法, 在mysql 不支持事务的时候 , 中间的 setAutoCommit 的事务操作是不是都不生效. 现在innoDB支持 事务了, 上述的 java 代码是否能实现 以下的 事务隔离的 操作, 在修改的时候处于锁定状态 ...
Android连接sqlite数据库进行增删改查和事务操作
JDBC事务操作例子所需jar包JDBC事务操作例子所需jar包JDBC事务操作例子所需jar包JDBC事务操作例子所需jar包
Spring事务操作示例(四种方式),包含完整代码和数据库文件(基于MySQL,在项目sql文件夹中),可运行,学习Spring事务详见博客:http://blog.csdn.net/daijin888888/article/details/51822257
含有事务操作的sqlhelper类C#,略经修改,希望对大家有用
本工程以“银行账号转账”为例子演示了如何处理Spring、Ibatis结合MySQL数据库使用时的事务操作 本工程编码方式:UTF-8 须执行的SQL语句: CREATE DATABASE `test`; USE `test`; CREATE TABLE `lm_bank_card` ( `...
Android数据存储SQLite - 事务操作
JavaEE spring事务操作环境和基本功能搭建
Android数据存储SQLite的事务操作
Spring事务传播原理及数据库事务操作原理.rar
Spring中得事务操作一图详解->基于注解、基于xml配置文件、完全注解
05Spring之事务操作.md
本工程以“银行账号转账”为例子演示了 如何处理Ibatis结合MySQL数据库使用时的事务操作 本工程编码方式:UTF-8 须执行的SQL语句: CREATE DATABASE `test`; USE `test`; CREATE TABLE `lm_bank_card` ( `id` ...
行业资料-电子功用-带有事务功能以及报告事务操作的日志记录电路的处理器
分布式事务操作之Spring+JTA+mybatis源码
中华全国律师协会律师办理道路交通事故损害赔偿法律事务操作指引概要.docx