import java.io.*;
import java.sql.*;
import java.util.Properties;/**** 验证innoDB可重复读级别是否可以隔离幻行读*** 查看隔离级别* select @@tx_isolation* 或* select @@transaction_isolation** 建表句子如下* CREATE TABLE `test` (*   `id` int(11) NOT NULL,*   PRIMARY KEY (`id`)* ) ENGINE=InnoDB DEFAULT CHARSET=utf8;** 开两个线,第一个读一次 停10S再读取一次* 第一个线程开始后5S开始第二个线程去写入一条**/
public class Jdbc {static Properties properties;public static void main(String[] args) throws  Exception {new MyThread1().start();Thread.sleep(5000);new MyThread2().start();}public static class MyThread1 extends Thread  {@Overridepublic void run() {try {Connection connection=getConnection();connection.setAutoCommit(false);String sql="SELECT COUNT(*) FROM EXERCISE.TEST";Statement statement=connection.createStatement();System.out.println("读取");ResultSet resultSet1=statement.executeQuery(sql);while (resultSet1.next()){System.out.println(resultSet1.getString("COUNT(*)"));}Thread.sleep(10000);System.out.println("读取");ResultSet resultSet2=statement.executeQuery(sql);while (resultSet2.next()){System.out.println(resultSet2.getString("COUNT(*)"));}connection.commit();statement.close();connection.close();} catch (Exception e) {e.printStackTrace();}}}public static class MyThread2 extends Thread {@Overridepublic void run() {try {Connection connection=getConnection();connection.setAutoCommit(false);String sql="INSERT INTO EXERCISE.TEST VALUES(2);";Statement statement=connection.createStatement();System.out.println("插入");System.out.println(statement.executeUpdate(sql));connection.commit();statement.close();connection.close();} catch (Exception e) {e.printStackTrace();}}}public static Connection getConnection() throws Exception {Class.forName("com.mysql.jdbc.Driver");return DriverManager.getConnection(properties.getProperty("localhostURL"),properties.getProperty("localhostUser"),properties.getProperty("localhostPwd"));}static {InputStream in = null;try {in = new FileInputStream(new File("D:\\javaProject\\exercise\\src\\main\\Resources\\db.properties"));} catch (FileNotFoundException e) {e.printStackTrace();}properties = new Properties();try {properties.load(in);} catch (IOException e) {e.printStackTrace();}}
}

innoDB可重复读级别是否可以隔离幻行读相关推荐

  1. 深入学习InnoDB可重复读隔离级别下如何避免幻读

    一.InnoDB可重复读隔离级别下如何避免幻读 在理解什么是幻读之前,先了解下脏读.幻读.不可重复读在实操场景中的现象. 脏读:指的就是一个事务读取到了另一个事务还未提交的数据,当该事物将数据回滚,则 ...

  2. 数据库零碎要点001_数据库的4大特性(原子性_持久性_隔离性_一致性)_数据库的隔离级别(脏读_幻读_不可重复读)_mysql如何设置隔离级别

    本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务 ...

  3. 数据库难点:脏读、幻读、不可重复读与四种隔离级别

    目录 前言 一.什么是事务? 二.事务的ACID特性 (1)原子性 (2)一致性 (3)隔离性 (4)持久性 三.何为脏读,幻读,不可重复读? 四.四种隔离级别 前言 本章着重点是介绍:出现脏读.幻读 ...

  4. mysql幻读和不可重复读的区别_面试官:MySQL的可重复读级别能解决幻读吗

    Java面试笔试面经.Java技术每天学习一点 Java面试 关注不迷路 作者:宁愿. 来源:https://juejin.im/post/5c9040e95188252d92095a9e 引言 之前 ...

  5. 如何验证 MySQL 的 InnoDB 在可重复读下依然会有幻影行问题及其原因

    如何验证 MySQL 的 InnoDB 在可重复读下依然会有幻影行问题及其原因 验证的流程 自助验证 为什么 MySQL 的 InnoDB 在可重复读下依然会有幻影行问题   很多人都知道,MySQL ...

  6. 不可重复读和幻读的区别_面试官:MySQL的可重复读级别能解决幻读吗

    Java面试笔试面经.Java技术每天学习一点 Java面试 关注不迷路 作者:宁愿. 来源:https://juejin.im/post/5c9040e95188252d92095a9e 引言 之前 ...

  7. 探究InnoDB可重复读

    在RC(Read Committed)和RR(Repeatable Read)两种事务隔离级别下,InnoDB存在两种数据读取方式: 快照读(Snapshot Read) 故名思意,快照读读取的都是快 ...

  8. MySQL可重复读级别能够解决幻读吗

    引言 之前在深入了解数据库理论的时候,了解到事物的不同隔离级别可能存在的问题.为了更好的理解所以在MySQL数据库中测试复现这些问题.关于脏读和不可重复读在相应的隔离级别下都很容易的复现了.但是对于幻 ...

  9. 数据库之InnoDB可重复读隔离级别下如何避免幻读

    文章目录 一.先介绍几个概念 1.什么是当前读 2.什么是快照读 3.什么是mvcc 二.RR级别下避免幻读的方法 三.RC级别下测试快照读和当前读 3.1.测试快照读 3.2.测试当前读 四.RR级 ...

最新文章

  1. 基于PyQt5的快速开发框架QFramer
  2. sessionStorage什么时候失效
  3. C++ 处理输入输出错误
  4. 训练日志 2019.1.17
  5. 【Spring源码】AOP切面源码
  6. 安卓应用安全指南 4.3.2 创建/使用内容供应器 规则书
  7. Socket网络编程--聊天程序(2)
  8. Atitit.mvc的趋势与未来attilax总结
  9. [转载]关于太阳(卫星)天顶角,太阳高度角,太阳方位角的整理_akala啦_新浪博客...
  10. 2020年android系统版本多少,2020年的Android系统会是什么样?
  11. 荐读 | 从公有链到生态架构者,Conflux 做了些什么?
  12. 【图书管理系统】附源码+教程
  13. 批量查找Oracle中多个表中同一字段的长度
  14. Jackson之JSON序列化和多态反序列化
  15. ASP.NET微信公众号开发实记之一 接入配置
  16. 【差分进化算法】基于适应度-距离-平衡的自适应引导差分进化 (FDB-AGDE) 算法附matlab代码
  17. 社保公积金缴纳流程(分享)
  18. Pyppeteer+Python爬取京东商品详情demo
  19. 数学期望,方差,标准差,样本方差,协方差,相关系数概念扫盲
  20. 七、“jsp:doBody”标签的使用

热门文章

  1. CentOS7 安装 X Window System
  2. HTML基础-黑马程序员-web前端零基础
  3. 计算机信息技术的具体应用案例,信息技术应用案例学习心得体会.doc
  4. vue使用videojs播放mu38
  5. 计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
  6. Linux 中 4 款炫酷的终端应用程序
  7. Broadbandits 网络盗匪 | 经济学人中英双语对照精读笔记
  8. arcpy游标使用(一)——Cursor
  9. JAVA简介及其编码规范
  10. Firework导航栏字体变大方法