美文网首页
数据库事务管理

数据库事务管理

作者: 絮叨客 | 来源:发表于2017-02-08 16:29 被阅读101次

事务基本概念

《Transaction 那点事儿》这篇文章通俗易懂的讲解了事务的基本概念、事务特性、引发的问题、JDBC事务解决方案、Spring解决方案,等。

文章主要内容思维导图

Spring + MyBatis事务配置

《spring+mybatis事务配置》这篇文章讲解了Spring实现事务管理的两种配置方式:

  • 声明式事务管理配置
<!-- 1. 配置事务管理 -->  
<bean name="transactionManager"
  class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 2. 事务相关控制配置:例如配置事务的传播机制 -->
<tx:advice id="iccardTxAdvice" transaction-manager="transactionManager">
    <tx:attributes>
        <tx:method name="delete*" propagation="REQUIRED" read-only="false"
              rollback-for="java.lang.Exception"
              no-rollback-for="java.lang.RuntimeException"/>
        <tx:method name="insert*" propagation="REQUIRED" read-only="false"
              rollback-for="java.lang.RuntimeException" />
        <tx:method name="add*" propagation="REQUIRED" read-only="false"
              rollback-for="java.lang.RuntimeException" />
        <tx:method name="create*" propagation="REQUIRED" read-only="false"
              rollback-for="java.lang.RuntimeException" />
        <tx:method name="update*" propagation="REQUIRED" read-only="false"
              rollback-for="java.lang.Exception" />

        <tx:method name="find*" propagation="SUPPORTS" />
        <tx:method name="get*" propagation="SUPPORTS" />
        <tx:method name="select*" propagation="SUPPORTS" />
        <tx:method name="query*" propagation="SUPPORTS" />
    </tx:attributes>
</tx:advice>
<!-- 3. 把事务控制在service层 -->
<aop:config>
    <aop:pointcut id="iccardTerm"
        expression="execution(public * com.shfft.iccardterm.service.*.*(..))" />
    <aop:advisor pointcut-ref="iccardTerm" advice-ref="iccardTxAdvice" />
</aop:config>
  • 注解式事务管理配置
<!-- 1. 定义事务管理器 -->
<bean id="transactionManager"
  class="org.springframework.jdbc.datasource.DataSourceTransactionManager">    
    <property name="dataSource" ref="dataSource" />
</bean>
<!-- 2. 使用注释事务 -->
<tx:annotation-driven transaction-manager="transactionManager" />
@Transactional(propagation=Propagation.REQUIRED,
        rollbackFor=Exception.class, timeout=1,
        isolation=Isolation.DEFAULT)
public void saveUser(Map<String, String> map) throws Exception {
    System.out.println("方法开始");
    for (int i = 0; i < 500000; i++) {
        System.out.println("*");
    }
    System.out.println("进入保存");
    userDao.saveUser(map);
    System.out.println("退出保存");
} 

相关文章

  • jdbc存储过程

    jdbc事务管理 数据库连接池

  • 搭建一个SSM项目 -6: 增加“事务”

    现在应该增加数据库的事务管理了。spring-myBatis的事务管理 事务管理的话,是用AOP实现的 1:引入依...

  • Spring基础目录/知识图谱

    目录 Spring IOC Spring Bean 面向切面编程 Spring和数据库 Spring数据库事务管理...

  • spring事务管理

    1. 事务管理的基本原理 spring事务管理实际上数据库对事务的支持,在java中使用的是JDBC的事务管理机制...

  • [二]事务原则与实现

    导航 一. 事务的原则 二. SQL实现数据库事务管理 三. JDBC实现事务管理 一. 事务的原则 事务的描述事...

  • spring-事务

    一 事务信息配置 配置事务管理器及数据库连接池 配置事务注解@Transactional处理,注入事务管理器

  • (四)Spring的事务管理

    什么是Spring的事务管理   在实际开发中,操作数据库时都会涉及到事务管理问题,为此Spring提供了专门用于...

  • Spring学习之事务管理基础

    Spring学习之事务管理基础 数据库事务相关概念 事务的定义 事务,一般指的是数据库事务,是指数据库操作的时候,...

  • Java Spring事务管理与@Transactional注解

    spring事务管理是指在业务代码在出现异常之后,对之前的操作进行回滚,保证数据库数据的一致性 分为编程式事务管理...

  • Spring JDBC 相关知识

    一、数据访问 数据库访问,JDBC 事务管理 ORM整合 1.DAO Data Access Object ,即数...

网友评论

      本文标题:数据库事务管理

      本文链接:https://www.haomeiwen.com/subject/rmzvittx.html