最近在搞oracle数据库,搭了个项目,springboot+mybatis+oracle。发现插入数据时,感觉像陷入死循环了一样,不报错,表中却没有数据。想了半天,会不会是因为没有添加事务的原因造成的,然后我就在service里面的新增记录的方法上面加了个@Transactional,这次还真插入成功了。
可是,之前使用mysql数据库,我的service方法上面没有添加@Transactional注解也能正常插入数据呀!!!。
为此,我特地修改了原来项目的jdbc连接,连接到mysql。
后来,我发现新增、更新、删除数据,其实mysql、oracle都要提交事务的。为什么在使用mysql的项目中不用提交事务都行呢?
是因为mysql数据库开启了自动提交。可以使用以下命令查询你的mysql是否开启了自动提交。
show variables like '%autocommit%';

总结
mysql、oracle(或许其他关系型数据库也一样)新增、修改、删除数据的操作都需要提交事务。要注意你的mysql是否开启了自动提交事务。事务一定要提交或者回滚了,不然会修改不了同一个记录。
Oracle与MySQL数据库插入数据的事务差异

在Oracle数据库中,插入数据时未手动提交事务可能导致数据无法保存,而在MySQL中默认开启自动提交事务,因此无需显式提交即可成功。要确保数据库事务被正确提交或回滚,以避免数据操作问题。
最低0.47元/天 解锁文章
262

被折叠的 条评论
为什么被折叠?



