mysql测试spring事务是否生效
同时对三张表进行插入操作,事务保证完整性。下面进行简单测试:
1. 锁定表
锁定用户表
LOCK TABLES user WRITE;
查看表是否锁定:
show OPEN TABLES where In_use > 0;
显示被锁定的表。
2. 验证在同一session下是否可以插入操作
insert into user(userId,ip,type,terminal) values(10002,'127.0.0.1',7,'pc');
可以操作成功。
3. 启动spring应用,执行插入操作,不能成功。
4,解锁
UNLOCK TABLES;
查看被锁定的表:
show OPEN TABLES where In_use > 0;
上述表不在锁定中。
5. 调用spring应用,执行插入操作,操作可以成功。
所以,应用spring的@transactional进行事务管理是ok的。
附录:
SHOW OPEN TABLES Syntax:https://dev.mysql.com/doc/refman/5.0/en/show-open-tables.html
SHOW OPEN TABLES [{FROM | IN} db_name]
[LIKE 'pattern' | WHERE expr]
SHOW OPEN TABLES lists the non-TEMPORARY tables that are currently open in the table cache. SeeSection 8.4.3.1, “How MySQL Opens and Closes Tables”. The WHERE clause can be given to select rows using more general conditions, as discussed in Section 19.18, “Extensions to SHOW Statements”.
The FROM and LIKE clauses may be used as of MySQL 5.0.12. The LIKE clause, if present, indicates which table names to match. The FROM clause, if present, restricts the tables shown to those present in the db_namedatabase.
SHOW OPEN TABLES output has the following columns:
DatabaseThe database containing the table.
TableThe table name.
In_useThe number of table locks or lock requests there are for the table. For example, if one client acquires a lock for a table using
LOCK TABLE t1 WRITE,In_usewill be 1. If another client issuesLOCK TABLE t1 WRITEwhile the table remains locked, the client will block waiting for the lock, but the lock request causesIn_useto be 2. If the count is zero, the table is open but not currently being used.In_useis also increased by theHANDLER ... OPENstatement and decreased byHANDLER ... CLOSE.Name_lockedWhether the table name is locked. Name locking is used for operations such as dropping or renaming tables.
mysql测试spring事务是否生效的更多相关文章
- 事务,Oracle,MySQL及Spring事务隔离级别
一.什么是事务: 事务逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败. 二.事务特性(4种): 原子性 (atomicity):强调事务的不可分割:一致性 (consiste ...
- Spring事务不生效问题
事务未生效可能造成严重的数据不一致性问题,因而保证事务生效至关重要.Spring事务是通过Spring aop实现的,所以不生效的本质问题是spring aop没生效,或者说没有代理成功,所以有必要了 ...
- Spring基础系列-Spring事务不生效的问题与循环依赖问题
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9476550.html 一.提出问题 不知道你是否遇到过这样的情况,在ssm框架中开发we ...
- MySQL与Spring事务隔离级别
https://zhuanlan.zhihu.com/p/27887568 能画第一张表,根据表描述.
- 深入理解 Spring 事务:入门、使用、原理
大家好,我是树哥. Spring 事务是复杂一致性业务必备的知识点,掌握好 Spring 事务可以让我们写出更好地代码.这篇文章我们将介绍 Spring 事务的诞生背景,从而让我们可以更清晰地了解 S ...
- [转]Spring事务嵌套引发的血案---Transaction rolled back because it has been marked as rollback-only
原文地址:https://blog.csdn.net/f641385712/article/details/80445912 1.概述 想必大家一想到事务,就想到ACID,或者也会想到CAP.但笔者今 ...
- spring事务详解(四)测试验证
系列目录 spring事务详解(一)初探事务 spring事务详解(二)简单样例 spring事务详解(三)源码详解 spring事务详解(四)测试验证 spring事务详解(五)总结提高 一.引子 ...
- 云笔记项目-Spring事务学习_测试准备
在做云笔记项目的过程中,顺便简单的学习了Spring的事务概念,业务以如果添加笔记,则增加用户星星数目作为例子,引入了事务的概念.类似注册送积分之类的,云笔记项目以增加笔记就送星星来说明事务.具体在添 ...
- spring中注解式事务不生效的问题
常用的解决方法可以百度,我针对我的问题描述一下 Mysql中InnoDB引擎才支持事务, MyISAM不支持事务. 当你尝试了各种方法解决spring中注解式事务不生效时, 一定要查看一下数据库中表的 ...
随机推荐
- Windows Server8下补丁分发配置与iSCSI配置
1.Win Server 8 下配置补丁分发(高清视频下载:http://down.51cto.com/data/424305)本视频适合于Windows Server系统管理员学习 650) thi ...
- Android之RadioGroup+ViewPager制作的底部导航栏
在日常开发中我们常常会用到类似微信或者QQ的底部导航.实现这样的效果有多种,今天就为大家介绍一种实现简单,可控性好的底部导航的实现方法. 首先创建activity_main.xml布局文件,里面主要由 ...
- 实现图片懒加载(lazyload)
对页面加载速度影响最大的就是图片,一张普通的图片可以达到几M的大小,而代码也许就只有几十KB.当页面图片很多时,页面的加载速度缓慢,几S钟内页面没有加载完成,也许会失去很多的用户. 所以,对于图片过多 ...
- 数据分析-jupyter
安装 jupyter pip install jupyter 快捷键 插入 cell : a b 删除cell : x 切换cell的模式: m y 执行 shift +enter 查看帮助 ...
- 文件/文件夹权限设置命令chmod的具体使用方法
chmod是文件/文件夹权限设置的命令,在Linux中常常遇到.本博文下面总结chmod的具体使用方法. Linux/Unix的档案调用权限分为三级,即档案拥有者user.群组group.其它othe ...
- cocos2d-x 3.2 之 2048 —— 第一篇
***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...
- jquery源码09 (6058 , 6620) css() : 样式的操作
var curCSS, iframe, // swappable if display is none or starts with table except "table", & ...
- Linq复杂对象查询
复杂的查询对象, using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...
- JavaScript笔记(2)
-->变量的定义 1.取得并使用值是所有程序设计中的要点 2.JS中的变量是没有类型的,在JS中只有值才持有类型,变量所持有的是其对应值的类型. 3.变量的取名要符合标识符的规则: (1)一个J ...
- 今日SGU 5.12
SGU 149 题意:求每一个点的距离最远距离的点的长度 收获:次大值和最大值,dfs #include<bits/stdc++.h> #define de(x) cout<< ...