Spring执行事务操作失败

今天在学习Spring事务的时候,遇到了一个很棘手的问题,代码没有任何问题,就是事务执行不成功,经过多方搜集资料查证,竟然发现是MySQL数据库引擎不支持,我直接原地去世,还有着操作,最终解决,将其分享给大家!!!

引擎类型区别
InnoDB可靠的事务处理引擎,它不支持全文本搜索,支持事务
MEMORY在功能等同于MyISAM,但由于存储数据在内存(不是磁盘)中,所以速度很快(特别适合于临时表),它使用存储在内存中的内容来创建表,而且数据全部放在内存中
MyISAM性能极高的引擎,支持全文本搜索,不支持事务处理

而小编我也是中招了,由于我的表默认引擎是MyISAM,不支持事务,所以一直不执行成功

我们可以通过执行来查看我们的数据库引擎是什么,ENGINE字段后面即是

 show create table tablename

在这里插入图片描述
解决:
执行sql语句

alter table 表名 type=INNODB

也许有人执行这一步会爆这样的错误在这里插入图片描述
这是由于在新版本的mysql5.1以后type就不支持了,可以使用ENGINE代替

alter table book ENGINE=INNODB

调整MySQL数据引擎即可

这里给出sping事务的配置文件信息
1、首先引入标签

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:tx="http://www.springframework.org/schema/tx"  
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
		   http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context.xsd
           http://www.springframework.org/schema/aop 
           http://www.springframework.org/schema/aop/spring-aop.xsd
           http://www.springframework.org/schema/tx
           http://www.springframework.org/schema/tx/spring-tx.xsd">

2、我这里是使用注解配置,要指明

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

3、指出事务

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

其他正常配置,如果事务的问题还是解决不了。
那么移步问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值