Spring---声明式事务管理

Posted dddjp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring---声明式事务管理相关的知识,希望对你有一定的参考价值。

1. 声明式事务管理(3步)

(1)在xml配置文件中声明事务管理器

  <bean id="transactionManager"
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
      <property name="dataSource" ref="dataSource"></property>
  </bean>

  注:ref="dataSource"中的dataSource是在当前xml文件中配置的数据源

(2)在xml配置文件中启用事务注解

  <tx:annotation-driven transaction-manager="transactionManager"/>

  注:如果声明的事务管理器的 id="transactionManager" ,则:transaction-manager属性可以省略

  

(3)在相关方法上添加注解

  @Transactional

 

2. 问题

  代码配置都正确,但是事务不能执行成功

  原因:mysql数据库默认的引擎是MyIASM,MyIASM不支持事务

    查看MySQL的数据库引擎

    mysql> show engines;

  解决:更改MySQL数据库引擎为InnoDB(3种方法)

  (1)修改my.ini配置文件

    在配置文件中添加default-storage-engine=InnoDB

    注意:修改配置文件之后一定要重启MySQL服务

      

 

  (2)在表建成之后

    ALTER TABLE table_name type = INNODB

  (3)在创建表的时候

    CREATE TABLE table_name(
      id INT PRIMARY KEY,
      NAME VARCHAR(225)
    )type = INNODB

  

以上是关于Spring---声明式事务管理的主要内容,如果未能解决你的问题,请参考以下文章

spring学习笔记声明式事务

Spring的声明式事务处理怎么配置,可以在提交事务后关闭数据库连接?

Spring声明式事务

spring 声明式事务原理解读

Spring 事务控制 -- 基于XML的声明式事务控制:环境搭建

什么是声明式事务?Java中