spring的事务管理

事务的相关概念
    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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值