Spring事务管理源码(上)

此篇文章的主要内容有如下部分:
事务是什么?
事务与java之间的关系
事务的原则性内容
事务的实现方式

1、事务是什么?

事务是正确执行-系列的操作(或动作) ,使得数据库从- -种状态转换成另一种状态,且保证操作全部成功,或者全部失败。

2、事务的原则是什么?

事务必须服从ISO/IEC所制定的ACID原则
ACID原则:
原子性:即不可分割性,事务要么全执行,要么全部不执行。
一致性:事务的执行使得数据库从一种状态转换为另一种正确状态。
隔离性:在事务正确提交之前,他可能的结果不应显示给其他的事务。
持久性:事务正确提交之后,其结果永久保存在数据库中。

3、事务与java之间的关系

java事务的产生。
程序员操作数据库的需要,java编程的程序或系统中,实现ACID的操作。
java事务实现的范围
通过JDBC相应的方法间接来实现对数据库的增、删、改、查,把事务转移java代码中进行控制。
确保事务-——定要么全部执行,要么撤销不执行。

4、java事务实现模式

java事务实
通过java’代码来实现对数据库的事务性操作。
java事务类型
JDBC事务:用Connection对象控制,包括手动模式和自动模式;
JTA(Java Transaction API)事务:与实现无关的,与协议无关的API ;
-容器事务:应用服务器提供的,且大多是基于JTA完成(通常基于JNDI的,相当复杂的API实现)。
三种事务的差异
●JDBC事务:控制的局限性在-个数据库连接内,但是其使用简单。
●JTA事务:功能强大,可跨越多个数据库或多DAO ,使用比较复杂。
●容器事务:主要指的是J2EE应用服务器提供的事务管理,局限于EJB

5、编程式事务管理

● 事务管理器(PlatformTransactionManager)方式
—类似应用JTA UserTransaction API方式,但异常处理更简洁;一核心类为: Spring事务管理的三个接口类以及JdbcTemplate类。
● 模板事务(TransactionTemplate)的方式
一此为Spring官方团队推荐的编程式事务管理方式;-主要工具为JdbcTemplate类。
代码实例
放代码之前需要了解:
● 要介绍的功能是修改数据库中存储的书籍信息
●书籍信息包括: ISBN号、名称、价格和出版日期
●会有一个对应的Book类包含. 上述内容
Book类的属性代码如图:
在这里插入图片描述
1.在MySQL中执行transaction.sq|文件,在test数据 库下创建相关表格

2.在IDEA中创建Web Application工程(创建普通Java工程也可以)

3.将老师源码中web\WEB-INF\lib目录下的jar包拷贝到新建的工程
对应位置下,然后导入相关jar包

4.创建com.mooc.beans包,并在该包下创建Book类,或者把老师的Book类拷贝过去

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值