1:mysql的aut0commit配置默认是开启的,也就是没执行一条sql都会提交一次,就算显示的开启事务也会导致多条SQL不在一个事务中,

如果需要相关的SQL在同一个事务中执行,那么必须将autocommit设置为OFF,再显式开启事务。

2:如果使用spring的事务,那么不存在这个问题,spring的事务默认是关闭自动提交的,做法是判断连接池是否开启事务自动提交,如果连接池开启自动提交则设置自动提交为关闭,否则不做操作,因为某些jdbc驱动做设置自动提交关闭代价昂贵。

/**

* This implementation sets the isolation level but ignores the timeout.

*/

@Override

protected void doBegin(Object transaction, TransactionDefinition definition) {

.........省略某些代码

// Switch to manual commit if necessary. This is very expensive in some JDBC drivers,

// so we don't want to do it unnecessarily (for example if we've explicitly

// configured the connection pool to set it already).

if (con.getAutoCommit()) {

txObject.setMustRestoreAutoCommit(true);

if (logger.isDebugEnabled()) {

logger.debug("Switching JDBC Connection [" + con + "] to manual commit");

}

con.setAutoCommit(false);

}

}

mysql 设置事物自动提交_mysql事务自动提交的问题相关推荐

  1. mysql 提交_MySQL 事务提交过程

    开发老大要求通过binlog查询一条被修改的数据,数据被查出后问我,有没有可能binlog中不会记录,回答不会,因为数据被修改,若失败直接回滚,不会在binlog中记录,此刻一个朋友用了洪荒之力告诉我 ...

  2. linux mysql提交_MySQL 事务提交过程

    开发老大要求通过binlog查询一条被修改的数据,数据被查出后问我,有没有可能binlog中不会记录,回答不会,因为数据被修改,若失败直接回滚,不会在binlog中记录,此刻一个朋友用了洪荒之力告诉我 ...

  3. mysql 自动增量_MySQL重置自动增量值

    在本教程中,我们将向您展示如何重置MySQL中AUTO_INCREMENT列的自动增量值. MySQL提供了一个有用的功能,称为自动增量. 您可以将自动递增属性分配给表的列,以生成新行的唯一标识. 通 ...

  4. mysql的回滚机制_mysql事务回滚机制概述

    应用场景: 银行取钱,从ATM机取钱,分为以下几个步骤 1 登陆ATM机,输入密码: 2 连接数据库,验证密码: 3 验证成功,获得用户信息,比如存款余额等: 4 用户输入需要取款的金额,按下确认键: ...

  5. 列表数据提交_MySQL事务提交过程(一)

    MySQL作为一种关系型数据库,已被广泛应用到互联网中的诸多项目中.今天我们来讨论下事务的提交过程. MySQL体系结构 由于mysql插件式存储架构,导致开启binlog后,事务提交实质是二阶段提交 ...

  6. mysql行级锁作用_Mysql事务及行级锁的理解

    在最近的开发中,碰到一个需求签到,每个用户每天只能签到一次,那么怎么去判断某个用户当天是否签到呢?因为当属表设计的时候,每个用户签到一次,即向表中插入一条记录,根据记录的数量和时间来判断用户当天是否签 ...

  7. mysql使用jdbc进行批量插入时把事务设为手动提交比事务自动提交速度快了10倍

    第一次写博客,写的不好请多多包涵.欢迎评论 今天需要对mysql做一个批量插入的操作,使用的是原生的jdbc对mysql进行操作,大约插入20几万条数据,刚开始事务是自动提交的,插完数据大约用了4分钟 ...

  8. mysql timestamp 自动更新_mysql timestamp自动更新

    最近遇到timestamp的自动更新时间问题,记录如下: 先看mysql官方手册(翻译稿): 在CREATE TABLE语句中,可以用下面的任何一种方式声明第1个TIMESTAMP列: 1.用DEFA ...

  9. mysql 配置自动截断_MySql超长自动截断实例详解

    MySql超长自动截断实例详解 小伙伴问到一个问题,为啥在项目中调用插入或者更新语句时超长的字无法自动截断,而在navicat中直接执行是可以自动截断的? 如下 CREATE TABLE `p_app ...

最新文章

  1. linux shell面试题(一)
  2. springMVC保存数据到mysql数据库中文乱码问题解决方法
  3. python list转字符串_我用python写了个自动生成给文档生成索引的脚本!懒人智慧...
  4. python学习_22(文件)
  5. 移动端数据统计,精细化运营的永动机
  6. 骚操作!Intellij IDEA居然藏着这些实用小技巧 !
  7. Android学习指南
  8. FreeSql (三十三)CodeFirst 类型映射
  9. Python——生成一个大文件ips.txt,要求1200行 ,每行随机为172.25.254.0/24段的ip(京东二面笔试题)
  10. Android 隐藏类的使用
  11. Makefile 编写教程(由简至难)
  12. mi5splus android9,小米5s plus和华为mate9买哪个好 小米5sPlus和华为mate9区别对比评测...
  13. The English (Porter2) stemming algorithm
  14. 虚拟机使用cheese调用摄像头黑屏问题解决
  15. 2022-2027年中国活性染料行业市场深度分析及投资战略规划报告
  16. 论文阅读:CTF:Anomaly Detection in High-Dimensional Time Series with Coarse-to-Fine Model Transfer
  17. oracle数据库中的update语句的用法
  18. linux 之sed命令详解
  19. Python简短的自学笔记
  20. hbase周学习——赵俊杰

热门文章

  1. 3.9 对称三位素数
  2. Python - 排序( 插入, 冒泡, 快速, 二分 )
  3. 系统滚动条实现的NUD控件Unusable版
  4. 避免人为灾难:盘点数据中心里十大愚蠢行为
  5. 用Mesos分布式架构进行工作
  6. Tp框架中模板中if条件如何使用?
  7. PHP的钩子实现解析
  8. 将链表中m-n范围内的数进行倒序
  9. 高计能计算要实现软着陆
  10. C#WinForm WebBrowser (二) 实用方法总结