JDBC事物代码没错为什么不奏效?

要注意MySql的引擎有没有错。要用Innodb引擎

昨天用MySql调试JDBC事物的时候发现怎么都不奏效,代码没错

调用 Connection 对象的 setAutoCommit(false); 以取消自动提交事务
在所有的 SQL 语句都成功执行后,调用 commit(); 方法提交事务
在出现异常时,调用 rollback(); 方法回滚事务
若此时 Connection 没有被关闭, 则需要恢复其自动提交状态

然后就百度了一下,百度,也就是五花八门的的内容,我稍稍整理了一下。

首先确定代码没有错之后,要看数据库本身有没有问题,目前通过学习发现两个问题可以通过数据库解决,而不是代码的事

一个就是事物的引擎,一个是事物的隔离级别。这里主要说引擎。

查看引擎的方式通过cmd查看

mysql -u账号 -p密码

show engines 查看引擎 带有default的为默认引擎

cmd修改引擎的语句试了几个没奏效,所以直接从配置文件里面改。

关闭MYISAM引擎方法:通过“net stop mysql”命令关闭mysql服务;找到mysql安装目录下的my.ini文件,将里面default-storage-engine=MYISAM改为default-storage-engine=Innodb,将skip-innodb改为#skip-innodb;最后通过“net start mysql”命令启动mysql服务。

有时候修改引擎过了之后,原数据表的引擎还没改,修改过之后只是修改之后再建立表的引擎换了,之前的还是没换。所以要还用之前的表还要修改。

送上查看表引擎和修改的cmd命令。还有一种修改方式是转存SQL文件,修改之后再导回去,我感觉还不够费劲的。

show engines 查看引擎 带有default的为默认引擎
show databases 查看所有数据库
use test user加数据库名称查看数据库
show tables 查看数据库内表的列表
desc testid desc加表名打开表结构
select语句查看数据表内容
SHOW CREATE TABLE 表名 查看数据库引擎 查询的不准确
SHOW TABLE STATUS from 数据库库名 where Name=’表名’; 查看数据表引擎 准确
在这个状态下 使用ALTER TABLE 表名 ENGINE = InnoDB;修改数据库引擎

转载于:https://www.cnblogs.com/lanzhengxiao/p/9441322.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值