Spring 事务

本文主要介绍了Spring框架的事务管理,包括事务的概念、事务管理器的使用,如PlatformTransactionManager接口及其不同数据库访问技术的实现类。重点讲解了Spring如何通过AOP的环绕通知和@Transactional注解来控制事务,包括事务的隔离级别、传播行为和超时设置。同时提到了声明式事务的优势和适用场景。
摘要由CSDN通过智能技术生成

什么事务? 事务是一些sql序列的集合, 是多条sql, 作为一个整体执行。

mysql执行事务
beginTransaction 开启事务
insert into student() values.....
select * from student where id=1001
update school set name=xxx where id=1005
endTransaction   事务结束

什么情况下需要使用事务?

一个操作需要多条(2条或2条以上的sql)sql语句一起完成, 操作才能成功。


5.2 在程序中事务在哪说明

 事务:加在业务类的方法上面(public方法上面),表示业务方法执行时,需要事务的支持。

public class AccountService{
    
   private AccountDao dao; 
   private MoneyDao dao2;
   // 在service(业务类)的public方法上面,需要说明事务。
   public void trans(String a, String b, Integer money){
       dao.updateA();
       dao.updateB();
       dao2.insertA();
   }
}


public class AccountDao{
    
    public void updateA(){}
    public void updateB(){}
    
}

public class MoneyDao{
    
    public void insertA(){}
    public void deleteB(){}
    
}

5.3 事务管理器

5.3.1 不同的数据库访问技术,处理事务是不同的

1)使用jdbc访问数据库, 事务处理。

public void updateAccount(){
    Connection conn = ...
    conn.setAutoCommit(false);
    stat.insert()
    stat.update();
    conn.commit();
    con.setAutoCommit(true)
}

2) mybatis执行数据库,处理事务

public void updateAccount(){
    SqlSession session = SqlSession.openSession(false);
    try{
        session.insert("insert into student...");
    	session.update("update school ...");
    	session.commit(); 
    }catch(Exception e){
        session.rollback();
    } 
}

5.3. 2 spring统一管理事务, 把不同的数据库访问技术的事务处理统一起来。

使用spring的事务管理器,管理不同数据库访问技术的事务处理。 开发人员只需要掌握spring的事务处理一个方案, 就可以实现使用不同数据库访问技术的事务管理。

管理事务面向的是spring, 有spring管理事务,做事务提交,事务回顾。


5.3.3 Spring事务管理器

Spring框架使用事务管理器对象,管理所有的事务。

事务管理器接口: PlatformTransactionManager

作用: 定义了事务的操作, 主要是commit(), rollback()

事务管理器有很多实现类: 一种数据库的访问技术有一个实现类。 由实现类具体完成事务的提交,回顾。

意味着: jdbc或者mybatis访问数据库有自己的事务管理器实现类 : DataSourc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值