此篇文章的主要内容有如下部分:
事务是什么?
事务与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类拷贝过去