【Spring】程序中的事务控制(十四)

来源:互联网 发布:nba数据查询网站 编辑:程序博客网 时间:2024/06/14 18:02


1.1 环境准备

用户访问—Action  --Service---Dao

 

一个业务的成功: 调用的service是执行成功的,意味着service中调用的所有的dao是执行成功的。 事务应该在Service层统一控制。

 

1)没有应用事务的代码:

2)模拟:

service中调用2dao, 希望其中一个dao执行失败,整个操作要回滚。

 

开发步骤:

1. 后台环境准备

数据库、表/entity/dao/service

2. dao 的实现用JdbcTemplate

3. 对象创建都有Spring容器完成

 

 

1.2 事务控制概述

编程式事务控制

自己手动控制事务,就叫做编程式事务控制。

Jdbc代码:

Conn.setAutoCommite(false);  //设置手动控制事务

Hibernate代码:

Session.beginTransaction();    //开启一个事务

【细粒度的事务控制:可以对指定的方法、指定的方法的某几行添加事务控制】

(比较灵活,但开发起来比较繁琐: 每次都要开启、提交、回滚.)

 

声明式事务控制

Spring提供了对事务的管理,这个就叫声明式事务管理。

Spring提供了对事务控制的实现。用户如果想用Spring的声明式事务管理,只需要在配置文件中配置即可; 不想使用时直接移除配置。这个实现了对事务控制的最大程度的解耦。

Spring声明式事务管理,核心实现就是基于Aop

【粗粒度的事务控制:只能给整个方法应用事务,不可以对方法的某几行应用事务。】

(因为aop拦截的是方法。)

 

Spring声明式事务管理器类:

Jdbc技术:DataSourceTransactionManager

Hibernate技术:HibernateTransactionManager

 

 

原创粉丝点击