- 浏览: 979785 次
文章分类
- 全部博客 (428)
- Hadoop (2)
- HBase (1)
- ELK (1)
- ActiveMQ (13)
- Kafka (5)
- Redis (14)
- Dubbo (1)
- Memcached (5)
- Netty (56)
- Mina (34)
- NIO (51)
- JUC (53)
- Spring (13)
- Mybatis (17)
- MySQL (21)
- JDBC (12)
- C3P0 (5)
- Tomcat (13)
- SLF4J-log4j (9)
- P6Spy (4)
- Quartz (12)
- Zabbix (7)
- JAVA (9)
- Linux (15)
- HTML (9)
- Lucene (0)
- JS (2)
- WebService (1)
- Maven (4)
- Oracle&MSSQL (14)
- iText (11)
- Development Tools (8)
- UTILS (4)
- LIFE (8)
最新评论
-
Donald_Draper:
Donald_Draper 写道刘落落cici 写道能给我发一 ...
DatagramChannelImpl 解析三(多播) -
Donald_Draper:
刘落落cici 写道能给我发一份这个类的源码吗Datagram ...
DatagramChannelImpl 解析三(多播) -
lyfyouyun:
请问楼主,执行消息发送的时候,报错:Transport sch ...
ActiveMQ连接工厂、连接详解 -
ezlhq:
关于 PollArrayWrapper 状态含义猜测:参考 S ...
WindowsSelectorImpl解析一(FdMap,PollArrayWrapper) -
flyfeifei66:
打算使用xmemcache作为memcache的客户端,由于x ...
Memcached分布式客户端(Xmemcached)
事务基础知识:http://my.oschina.net/jeffli1993/blog/684762
数据库事务隔离级别-- 脏读、幻读、不可重复读(清晰解释) :http://blog.csdn.net/jiesa/article/details/51317164
1.测试类
2.控制台输出如下:
==========currentThread:file:/F:/Myeclipse/test/WebRoot/WEB-INF/classes/
==========File:/F:/Myeclipse/test/WebRoot/WEB-INF/classes/com/test/controller/test/
==========Path:/F:/Myeclipse/test/WebRoot/WEB-INF/classes/com/test/controller/test/
======isSupportsTransactions:true
======isSupportLevel:true
======DefaultTransactionIsolation:2
3.从上可以看出Mysql默认支持的事物为:
/**
* A constant indicating that
* dirty reads are prevented; non-repeatable reads and phantom
* reads can occur. This level only prohibits a transaction
* from reading a row with uncommitted changes in it.
*/
int TRANSACTION_READ_COMMITTED = 2;
可以避免脏数据的发生,但不重读,幻读可能发生。
4.从Connection的源码中,我们可以看到事务等级的定义如下:
数据库事务隔离级别-- 脏读、幻读、不可重复读(清晰解释) :http://blog.csdn.net/jiesa/article/details/51317164
1.测试类
public class TestMySQL { public static void main(String[] args) { String path = Thread.currentThread().getContextClassLoader ().getResource("").toString(); System.out.println("==========currentThread:"+path); TestMySQL tm = new TestMySQL(); System.out.println("==========File:"+tm.getClass().getResource("").getFile()); System.out.println("==========Path:"+tm.getClass().getResource("").getPath()); String jdbcPath = tm.getClass().getResource("").getPath(); try { File pFile = new File(jdbcPath+"jdbc.properties"); FileInputStream pInStream=null; try { pInStream = new FileInputStream(pFile ); } catch (FileNotFoundException e) { e.printStackTrace(); } Properties pInfo = new Properties(); try { pInfo.load(pInStream ); } catch (IOException e) { e.printStackTrace(); } String drive = pInfo.getProperty("driver"); String url = pInfo.getProperty("url"); String user = pInfo.getProperty("user"); String pwd = pInfo.getProperty("pwd"); Class.forName(drive); Connection conn = DriverManager.getConnection(url, user, pwd); DatabaseMetaData metaData = conn.getMetaData(); // 是否支持的事务 boolean isSupport = metaData.supportsTransactions(); System.out.println("======isSupportsTransactions:"+isSupport); // 是否支持的Connection.TRANSACTION_SERIALIZABLE等级事务 boolean isSupportLevel = metaData .supportsTransactionIsolationLevel(Connection.TRANSACTION_SERIALIZABLE); System.out.println("======isSupportLevel:"+isSupportLevel); // 获取默认事务 int defaultIsolation = metaData.getDefaultTransactionIsolation(); System.out.println("======DefaultTransactionIsolation:"+defaultIsolation); if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } catch (Exception e) { e.printStackTrace(); } } }
2.控制台输出如下:
==========currentThread:file:/F:/Myeclipse/test/WebRoot/WEB-INF/classes/
==========File:/F:/Myeclipse/test/WebRoot/WEB-INF/classes/com/test/controller/test/
==========Path:/F:/Myeclipse/test/WebRoot/WEB-INF/classes/com/test/controller/test/
======isSupportsTransactions:true
======isSupportLevel:true
======DefaultTransactionIsolation:2
3.从上可以看出Mysql默认支持的事物为:
/**
* A constant indicating that
* dirty reads are prevented; non-repeatable reads and phantom
* reads can occur. This level only prohibits a transaction
* from reading a row with uncommitted changes in it.
*/
int TRANSACTION_READ_COMMITTED = 2;
可以避免脏数据的发生,但不重读,幻读可能发生。
4.从Connection的源码中,我们可以看到事务等级的定义如下:
/** 不支持事务 * A constant indicating that transactions are not supported. */ int TRANSACTION_NONE = 0; /**支持事务,脏数据,不重读,幻读可能发生。 * A constant indicating that * dirty reads, non-repeatable reads and phantom reads can occur. * This level allows a row changed by one transaction to be read * by another transaction before any changes in that row have been * committed (a "dirty read"). If any of the changes are rolled back, * the second transaction will have retrieved an invalid row. */ int TRANSACTION_READ_UNCOMMITTED = 1; /**支持事务,不重读,幻读可能发生。 * A constant indicating that * dirty reads are prevented; non-repeatable reads and phantom * reads can occur. This level only prohibits a transaction * from reading a row with uncommitted changes in it. */ int TRANSACTION_READ_COMMITTED = 2; /**支持事务,幻读可能发生。 * A constant indicating that * dirty reads and non-repeatable reads are prevented; phantom * reads can occur. This level prohibits a transaction from * reading a row with uncommitted changes in it, and it also * prohibits the situation where one transaction reads a row, * a second transaction alters the row, and the first transaction * rereads the row, getting different values the second time * (a "non-repeatable read"). */ int TRANSACTION_REPEATABLE_READ = 4; /**支持事务,脏数据,不重读,幻读不可能发生。 * A constant indicating that * dirty reads, non-repeatable reads and phantom reads are prevented. * This level includes the prohibitions in * <code>TRANSACTION_REPEATABLE_READ</code> and further prohibits the * situation where one transaction reads all rows that satisfy * a <code>WHERE</code> condition, a second transaction inserts a row that * satisfies that <code>WHERE</code> condition, and the first transaction * rereads for the same condition, retrieving the additional * "phantom" row in the second read. */ int TRANSACTION_SERIALIZABLE = 8;
发表评论
-
Deadlock found when trying to get lock; try restarting transaction解决方式
2017-07-18 23:00 2060MySQL 事务的学习整理:http://blog.csdn. ... -
MySQL慢日志
2017-05-18 16:05 1033The Slow Query Log:https://dev. ... -
The table is full问题解决过程
2017-05-06 15:29 7586The table‘xxxx’is full 设置临时表大小 ... -
百万级数据-程序迁移后续
2017-04-13 18:09 1631百万级数据-程序迁移:http://donald-draper ... -
Msyql日期字符串转换
2017-04-01 14:13 538Date和String的互相转换:http://www.tui ... -
Mysql添加约束
2017-03-31 16:28 898MySQL中对三种约束的支持:http://leekai.me ... -
Mysql FEDERATED引擎
2016-11-29 15:51 605使用mysql federated引擎构建MySQL分布式数据 ... -
MySQL触发器
2016-11-24 19:04 714CHANGE MASTER:http://dev.mysql. ... -
Mysql主从配置
2016-11-11 18:31 5261、主从服务器分别作以下操作: 1)版本一致 2)初始 ... -
百万级数据-程序迁移
2016-09-29 19:03 2627JVM学习笔记:http://blog.csdn.net/cu ... -
Mysql 备份工具XtraBackup增量备份
2016-08-05 18:11 719安装:http://donald-draper.iteye.c ... -
Mysql 备份工具XtraBackup全量备份
2016-08-05 16:41 562Percona安装:http://donald-draper. ... -
Mysql 备份工具XtraBackup 安装
2016-08-05 16:28 939开源热备工具XtraBackup下载:https://www. ... -
sysbench基准测试
2016-08-01 17:45 783下载sysbench:http://dev.mysql.com ... -
mysql 事务处理
2016-07-29 16:07 505创建表: CREATE TABLE `role` ( ` ... -
mysql 全文索引
2016-07-28 11:03 613mysql大表查询的时候,'String%'模糊查询可以使用B ... -
MySQL 物理文件的迁移
2016-07-26 15:39 2339参考资料:http://www.cnblogs.com/adv ... -
centos7 安装mysql
2016-07-26 11:36 742下载MYSQL-RPM包:http://downloads.m ... -
mysql 大表添加索引注意事项
2016-07-25 16:01 2640LINXU top命令: http://www.c ... -
mysql 大表分页查询测试分析优化
2016-07-25 11:30 1499索引概念: http://blog.csdn.net/xlur ...
相关推荐
### MySQL事务的隔离性 #### 一、事务与MySQL架构 **事务**是数据库管理系统执行过程中的一系列逻辑操作,这些操作作为一个完整的单元被执行。如果事务内的所有操作都成功完成,则整个事务成功;如果其中一个操作...
MySQL事务隔离级别是数据库管理系统中一个非常重要的概念,它关系到数据的一致性和并发性能。在MySQL中,事务被用于确保数据库操作的原子性、一致性、隔离性和持久性(ACID特性)。事务隔离级别主要涉及四个方面:读...
### MySQL 事务的基本...通过对MySQL事务的理解和掌握,我们可以更好地利用其强大的功能来提高应用程序的稳定性和可靠性。通过本篇文章的学习,相信读者已经对MySQL事务的基本原理、特点以及使用方法有了全面的认识。
在这个"mysql事务学习资料(PPT+源码)"中,你将深入理解MySQL事务的概念、类型、特性和实际应用。 1. **事务概念**:在数据库中,事务是一系列操作的集合,这些操作要么全部成功,要么全部回滚,以保持数据的一致性...
### MySQL事务处理用法与实例详解 #### 一、事务的概念及重要性 在数据库管理中,事务(Transaction)是指一系列作为一个整体的操作序列。这些操作要么全部成功,要么全部失败,不能只执行其中的一部分。事务处理...
以下是对`jdbc+spring+mysql事务理解和分析`的详细说明: 1. **原子性(Atomicity)**:这是事务的基本特性,表示事务中的所有操作要么全部成功,要么全部回滚。如果在事务执行过程中发生错误,数据库会撤销所有已...
在深入探讨MySQL事务和锁的原理之前,我们首先需要对“事务”的概念有一个基本的理解。事务是一组操作的集合,这些操作要么全部完成,要么全部不做,确保数据库从一种一致性状态转换到另一种一致性状态,而不会留下...
深入理解Mysql事务隔离级别与锁机制 Mysql事务隔离级别与锁机制是数据库系统中非常重要的概念,它们都是为了解决多事务并发问题而设计的。下面我们将深入讲解这些机制,让大家彻底理解数据库内部的执行原理。 事务...
关于mysql的事务处理 public static void StartTransaction(Connection con, String[] sqls) throws Exception { if (sqls == null) { return; } Statement sm = null; try { // 事务开始 System....
超高并发下如何对Mysql事务进行优化
MySQL 事务管理是数据库操作的重要组成部分,特别是在处理关键数据和多步骤操作时,确保数据的一致性和完整性至关重要。事务提供了原子性、一致性、隔离性和持久性的保障,这四个特性通常被简称为ACID属性。 原子性...
MySQL 事务是指一组操作的集合,保证了数据库的完整性和一致性。事务可以分为四个阶段:开始事务、执行事务、提交事务、回滚事务。 MySQL 函数 MySQL 函数是指可以在 MySQL 中使用的函数,包括字符串函数、数字...
"Java实现的mysql事务处理操作示例" 本文主要介绍了Java实现的mysql事务处理操作,结合实例形式较为详细的分析了Java基于JDBC操作mysql数据库实现事务处理的相关概念、操作技巧与注意事项。 事务处理是数据库操作...
MySQL 事务表与非事务表是数据库管理中的两种基本类型,它们主要的区别在于对数据一致性和安全性提供的保障程度。在MySQL中,这两种类型的表在处理数据操作时有不同的机制。 首先,事务表,如InnoDB存储引擎提供的...
MySQL事务是数据库操作的核心概念,尤其对于保证数据的一致性和完整性至关重要。在MySQL中,事务是一组数据库操作,这些操作被视为一个单元,要么全部成功,要么全部回滚,以确保数据库状态的一致性。本资料“mysql...
nodejs + mysql 事物处理问题 呵呵 看了就知道 记得npm install啊 需要的东西啊 本想免费 苦于没积分 ,需要的的同学,给点分吧
MySQL 事件、触发器、事务实验报告 MySQL 事件调度器是 MySQL 中的一种机制,可以根据指定的时间间隔执行特定的 SQL 语句。事件调度器有两个优点:一是可以用于定期统计、清理、检查等操作;二是可以提高数据库的...