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的声明式事务处理怎么配置,可以在提交事务后关闭数据库连接?