学习Mybatis时提到了JDBC方式需要自己手动提交事务,如果不加session.commit会导致数据库的数据无法正常插入(程序本身又不给你报错,还装出一副我已经插入成功的样子)

SqlSession session = sessionFactory.openSession();

如果要自动提交的话加个参数就好啦

SqlSession session = sessionFactory.openSession(true);//自动提交

手动提交的话

SqlSession session = sessionFactory.openSession(false);//手动提交,其实就是默认的那种情况

后面去查了一下这个默认提交方式....发现mysql好像数据库本身也有个默认提交方式(自动提交)

发现自动提交可能会产生某些可怕的后果(某些删除操作写错就凉了),所以我决定把mysql的自动提交给关闭掉!(犹豫就会败北!)

有的小伙伴可能会好奇会有什么后果,举个例子:你要删除一个班和一个班的所有学生的时候,你删除一个班的时候没问题,然后删除学生出现了异常停止了,然而你的删除班级指令已经提交了..然后你会发现你没有了家(学生还在,班级没了)~~~~~嘤嘤嘤

p.s. 只有innero db类型的表才可以设置autocommit;

方式一、

禁用步骤:

1、在执行inser / update / delete之前 先执行一个begin;语句,进行了一段时间的数据库操作之后使用commit提交所有操作或者使用rollback回滚所有操作

p.s. 方式一要注意,一次commit或一次rollback表示最近一个begin到此次commit或rollback之间的操作都将提交或回滚,这之后的操作都必须重新设置begin,否则还会继续使用autocommit=ON的策略

方式二、

1、登录mysql数据库

2、set autocommit='off';

3、查看是否警用: show variables like "autocommit";                                                   (如果是OFF表示禁用成功)

4、执行一段insert / update / delete语句,检查无错误之后commit;这样,这段时间内的所有操作都将提交到数据库中,如果发现执行了不正确的insert / update / delete语句,则使用rollback,此时将会回滚到上一个commit之后数据库的状态

java mysql 自动提交_Mybatis的JDBC提交设置/关闭mysql自动提交------关于mysql自动提交引发的惨剧...相关推荐

  1. mysql 设置连接超时_如何配置MySQL数据库超时设置

    最近备战京东双11,在配置MySQL的超时配置发现有很多地方可以设置.这么多超时的配置有什么影响,以及配置会有什么影响呢?今天的文章就让我来大家来分析一下. 1. JDBC超时设置 connectTi ...

  2. jdbc 3种获得mysql插入数据的自增字段值的方法_【JDBC】向数据表插入数据时,自动获取生成的主键...

    数据表设计时,一般都会有一个主键(Key)(自己指定),有时也可以使用联合主键: 有许多数据库提供了隐藏列为表中的每行记录分配一个唯一键值(如:rowid): 当我们没有指定哪一列作为主键key时,数 ...

  3. MySQL模式设置方式介绍(严格模式:STRICT_TRANS_TABLES,无引擎提交:NO_ENGINE_SUBSTITUTION,填补字符长度:PAD_CHAR_TO_FULL_LENGTH)

    引入 我们之前所学的表数据类型中定义 char 或者 varchar 字段, 当你写入长度超过了你指定的长度, 他也不会报错, 这对于mysql来说是没有任何意义的 本篇文章主要介绍 : STRICT ...

  4. java mysql 源码分析_JAVA JDBC(MySQL)驱动源码分析

    JAVA连接数据库是其众多功能中的一部分,主要有两种方式连接DataBase: 一种是采用JDBC-ODBC桥,另一种则是称之为纯驱动连接DataBase,第一种方式在大型项目中基本上不再使用,本系列 ...

  5. 狂神说Mysql课堂学习笔记,jdbc(含代码,下载链接)

    连接数据库 命令行连接! mysql -uroot -p123456 命令行连接 mysql -uroot -p123456 --连接数据库show databases; -- 查看所有的数据库mys ...

  6. 如何设置工作流到了某一节点自动执行java方法_2019年JAVA最常见面试题汇总(收藏)...

    java基础以及多个"比较" 1.Collections.sort排序内部原理 在Java 6中Arrays.sort()和Collections.sort()使用的是MergeS ...

  7. java简单的事务处理_JAVA之JDBC简单事务处理

    1.什么是Java事务 通常观念认为,事务与数据库有关.事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取.事务的正确执行使得数据库从一种状态转换成另一种状态. 事务必须服从 ...

  8. java毕业生设计斗南基地鲜花网上销售管理系统计算机源码+系统+mysql+调试部署+lw

    java毕业生设计斗南基地鲜花网上销售管理系统计算机源码+系统+mysql+调试部署+lw java毕业生设计斗南基地鲜花网上销售管理系统计算机源码+系统+mysql+调试部署+lw 本源码技术栈: ...

  9. java毕业设计随心淘网管理系统源码+lw文档+mybatis+系统+mysql数据库+调试

    java毕业设计随心淘网管理系统源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计随心淘网管理系统源码+lw文档+mybatis+系统+mysql数据库+调试 本源码技术栈 ...

最新文章

  1. php umount强制,linux mount挂载与umount 卸载及“Device is busy”问题 | 璞玉(POOY)
  2. Apollo后台配置:添加用户
  3. 快手公司厕所装计时器,网友:再也不能带薪拉屎了!
  4. unity算法面试_Unity面试题汇总
  5. C# list导出Excel(二)
  6. dmf nmf_SQL Server 2019 –新的DMF sys.dm_db_page_info
  7. hdu3351 stack
  8. CPU溫度高的9種可能
  9. java词频统计——web版支持
  10. tf.contrib.rnn.static_rnn与tf.nn.dynamic_rnn区别
  11. [转]PKM2:优秀的个人知识管理工具
  12. 关于使用tess4j-OCR识别图片中文教程,亲测可用,不报错
  13. JavaScript:实现PigeonHoleSort鸽巢排序算法(附完整源码)
  14. Linux基础篇(五):远程操作
  15. pc机安装android,4种在PC机上运行Android系统的方法
  16. TOP100summit分享实录 | 如何构建一套全链路的故障追踪和故障自愈系统?
  17. 《开源合辑-(游戏/娱乐-角色扮演)之(Java)》
  18. 什么是CCNA?(及相关概念)
  19. Django 使用技巧之 settings 拆分 + 通过指令选择不同的配置文件。
  20. CSS实现图片文字排版02

热门文章

  1. 记一次前端问题解决历程(Cannot read Property ‘call‘ of undefined)
  2. 解决NahimicSvc32.exe与bilibili直播姬的音频不兼容的问题
  3. You need to use a Theme.AppCompat theme (or descendant) with this activity解决方法
  4. Requirement already satisfied 解决方法
  5. 成功解决 org.mybatis.spring.MyBatisSystemException问题!!
  6. 如何检查服务是否在Android上运行?
  7. Jenkins Android gradle只能打包app-release-unsigned.apk
  8. 2017全球中国锂电池市场趋势概述
  9. CSharpGL(22)实现顺序无关的半透明渲染(Order-Independent-Transparency)
  10. ExtJs4 笔记(5) Ext.Button 按钮