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

  

原文地址:https://www.cnblogs.com/duanjiapingjy/p/7663580.html