1.2 事务控制概述
编程式事务控制
自己手动控制事务,就叫做编程式事务控制。
Jdbc 代码:
Conn.setAutoCommite(false); // 设置手动控制事务
Hibernate 代码:
Session.beginTransaction(); // 开启一个事务
【细粒度的事务控制: 可以对指定的方法、指定的方法的某几行添加事务控制】
(比较灵活,但开发起来比较繁琐: 每次都要开启、提交、回滚.)
声明式事务控制
Spring 提供了对事务的管理, 这个就叫声明式事务管理。
Spring 提供了对事务控制的实现。用户如果想用 Spring 的声明式事务管理,只需要在配
置文件中配置即可; 不想使用时直接移除配置。这个实现了对事务控制的最大程度的解耦。
Spring 声明式事务管理,核心实现就是基于 Aop。
【粗粒度的事务控制: 只能给整个方法应用事务,不可以对方法的某几行应用事务。】
(因为 aop 拦截的是方法。)
Spring 声明式事务管理器类:
Jdbc 技术:DataSourceTransactionManager
Hibernate 技术:HibernateTransactionManager
2. 声明式事务管理
步骤:
1) 引入 spring-aop 相关的 4 个 jar 文件
2) 引入 aop 名称空间 【XML 配置方式需要引入】
3) 引入 tx 名称空间 【事务方式必须引入】
XML 方式实现
public class DeptDao {
// 容器注入JdbcTemplate对象
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
评论0