spring的事务管理

本文深入探讨了Spring框架下的事务管理机制,包括事务的基本概念、特性、隔离级别设置及解决读问题的方法。同时介绍了Spring提供的两种事务管理方式:编程式与声明式,并详细展示了基于XML配置文件和注解实现声明式事务的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

事务的相关概念
    1.什么是事务
    2.事物的特性
    3.不考虑隔离性产生读的问题
    4.解决读的问题
      (1)设置隔离级别
spring事务管理api
    1.spring事务管理的两种方式
    第一种 编程式 (不再使用)
    第二种 声明式
        (1)基于xml配置文件实现
        (2)基于注解
   接口  PlatfromTransactionManager   事务管理器
       spring 针对不同的dao层框架,提供接口不同的实现类
       首先配置事务管理器



  OrdersService
  OrdersDao

声明事务管理器(xml)
xml中
   创建dao和service的对象,并在service中注入dao
   创建jdbc模板对象,并在dao中注入
   在模板中注入dataSource
  1. 配置事务管理器
   <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
     <property name="datasource" ref="datasource"></property>
   </bean>
  2.配置事务的增强
   <tx:advice id="txadvice" transaction-manager="transactionManager">
    做事务操作
     <tx:attributes>
       制定事务方法的匹配规则
       <tx:method name="account*" propagation="REQUIRED"/>
     </tx:attributes>
   </tx:advice>

    3.配置切面
     <aop:config>
       切入点
     <aop:pointcut expression="execution(* 类的名称)" id="pointcut1"/>
       切面
      <aop:advisor advice-ref="txadvice" pointcut-ref="pointcut1"/>
      </aop:config>




 public class OrdersService{
     public OrdersDao ordersDao;
     创建set方法
     public void accountMoney(){
         ordersDao.lessMoney();
         ordersDao.moreMoney();
     }
 }

 public class OrdersDao{
     private JdbcTemplate jdbcTemplate;
     public void setJdbcTemplate(JdbcTemplate jdbcTemplate){
         this.jdbcTemplate=jdbcTemplate;
     }
     public void lessMoney(){
       String sql="update shiwu set salary=salary-? where username=?";
       jdbcTemplate.update(sql,1000,"小王");
     }
     public void moreMoney(){
          String sql="update shiwu set salary=salary+? where username=?";
        jdbcTemplate.update(sql,1000,"小马")
     }
 }




声明事务管理器(注解)
  配置事务管理器
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
     <property name="datasource" ref="datasource"></property>
   </bean>
  开启事务的注解
  <tx:annotation-driven transaction-manager="transactionManager"/>
  在要使用事务的方法所在类上面添加注解
    @Transactional
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值