在开发中,遇到了sql语句报错,但是并没有回滚的情况. 经过几天的排查,终于找到了事务没有回滚的原因. 原来的项目用的是informix的数据库,原来针对事务回滚的机制都是好用的.我本地用的是mysql数据库. 先将程序代码与spring-mybatis.xml配置文件拿过来: 1.程序代码: 这个问题是在验证增删改查返回值时发现的. 两个操作,删除时,因为关联了外键,所以会报错,此时正常情况更新的语句也会回滚,但是并没有. /** *@Author: Administrator on 2020…
ThreadLocal是用来处理多线程并发问题的一种解决方案.ThreadLocal是的作用是提供线程的局部变量,在多线程并发环境下,提供了与其他线程隔离的局部变量.通常这样的设计的情况是因为这个局部变量是不适合放在全局变量进行同步处理的.比如在事务管理中,在service类中的涉及到事务的方法,每个事务的上下文都应该是独立拥有数据库的connection连接的,否则在数据提交回滚过程中就会产生冲突. spring中使用ThreadLocal来设计TransactionSynchronizati…
最近在项目中遇到了spring事务的注解及相关知识,突然间感觉自己对于这部分知识只停留在表面的理解层次上,于是乎花些时间上网搜索了一些文章,以及对于源码的解读,整理如下: 一.既然谈到事务,那就先搞清到底什么是事务,或者说,Spring事务管理中的事务到底是指什么? 1.事务(Transaction),通常是指数据库的事务,在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit),例如insert .update.delete等,事务是恢复和并发控制的基本单位. 2.事务…
此处先粘贴出Spring事务需要的配置内容: 1.Spring事务管理器的配置文件: 2.一个普通的JPA框架(此处是mybatis)的配置文件: <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> ..…
之前我们说过Spring事务管理中的事务的传播行为的属性.下面我们来说一下它的其他属性. 一.事务的隔离级别 1 .数据库事务并发问题.假设现在有两个事务:Transaction01和Transaction02并发执行. ①脏读 [1]Transaction01将某条记录的AGE值从20修改为30. [2]Transaction02读取了Transaction01更新后的值:30. [3]Transaction01回滚,AGE值恢复到了20. [4]Transaction02读取到的30就是一个…
目录 1-2 Spring事务管理 概念介绍 事务回顾 事务的API介绍 Spring 事务管理 转账案例 编程式事务管理 声明式事务管理 使用XML配置声明式事务 基于tx/aop 使用注解配置声明式事务 总结 内容可能存在MK版本兼容原因显示异常,可以异步我的github上的readme观看.该篇源码和readme地址:https://github.com/weiliangchun/JavaCode/tree/master/ssm/1-2spring_transaction SSM学习路径分…
探讨Spring事务控制中,异常触发事务回滚原理.文章进行了6种情况下的Spring事务是否回滚. 以下代码都是基于Spring与Mybatis整合,使用Spring声明式事务配置事务方法. 1.不捕获异常(一般处理方式) 代码,其中contentMappger.updateWithErrTest(31L); 是SQL语句错误,用来测试回滚. /** * 删除多条记录 */ @Override public ShopResult deleteContentGroup(String[] ids)…
一.JDBC编程特点 静态代码+动态变量=JDBC编程. 静态代码:比如所有的数据库连接池 都实现了DataSource接口,都实现了Connection接口. 动态变量:用户名.密码.连接的数据库.表名.SQL语句等信息. 在spring中动态变量能够通过注入的形式给予.这样的变成方式适合包装成模板.静态代码构成了模板,而动态变量是需要传入的参数. 二.核心类JdbcTemplate 1.基于模板的设置. 2.完成了资源的创建和释放的工作. 3.简化了我们的JDBC操作. 4.完成了对JDBC…
一 .第一种:全注解声明式事务 Xml代码 复制代码 收藏代码 .<?xml version="1.0" encoding="UTF-8"?> .<beans xmlns="http://www.springframework.org/schema/beans" . xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" . xmlns:p="ht…
1.事务(https://www.cnblogs.com/zhai1997/p/11710082.html) (1)事务的特性:acdi (2)事务的并发问题:丢失修改,脏读,不可重复读 (3)事务的隔离级别:1.2.4.8 2.Spring的事务管理 (1)Spring封装了事务管理的代码:打开事务.提交事务.回滚事务 在我们学习的不同阶段(JDBC.Hibernate),对事物处理的方法是不一样的,为了解决这个问题,Spring提供了一个接口,PlatformTransactionManag…