mysql------事务(代码片段)

饿狼干爹 饿狼干爹     2022-10-24     605

关键词:

事务


一、概念

数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。(事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。)

例如,银行转账工作:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行。这就是一个事务。


二、事务的语句

开始事物:BEGIN TRANSACTION
提交事物:COMMIT TRANSACTION
回滚事务:ROLLBACK TRANSACTION 如果在操作时出错,应该从新开始一个事务。



三、属性

1、原子性(atomicity):组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分。 
2、一致性(consistency):在事务处理执行前后,数据库是一致的(数据库数据完整性约束)。 
3、隔离性(isolcation):一个事务处理对另一个事务处理的影响。 
4、持续性(durability):事务处理的效果能够被永久保存下来 。
5、一个事务只会有一个结果:要么成功、要么失败。


四、一般的sql语句、批处理和事务处理三者的区别和java实现代码模板

(下面的的Connection con = ConnFactory.getConn()可见点击打开链接

1、一般sql语句

没有采用事务处理,语句通过一条就生效一条,如果出异常,后面的语句都不能执行。

	@Test
	public void save1() throws Exception
		Connection con = ConnFactory.getConn();
		Statement st = con.createStatement();
		st.execute("insert into stud(id,sname,age) values(1010,'益阳1',25)");
		st.execute("insert into stud(id,sname,age) values(1010,'益阳2',28)");
		st.execute("insert into stud(id,sname,age) values(1011,'益阳1',25)");
	
2、批处理

没有采用事务处理,批处理的方式:所有合法的语句都能有效执行,出异常的语句自己本身是不能执行,但不影响后面的语句。

	@Test
	public void save2() throws Exception
		Connection con = ConnFactory.getConn();
		Statement st = con.createStatement();
		st.addBatch("insert into stud(id,sname,age) values(1010,'益阳1',25)");
		st.addBatch("insert into stud(id,sname,age) values(1010,'益阳2',28)");
		st.addBatch("insert into stud(id,sname,age) values(1011,'益阳3',25)");
		st.executeBatch();
	
3、事务处理模板

@Test
	public void save3() throws Exception
		Connection con = ConnFactory.getConn();
		try 
			con.setAutoCommit(false);//默认是true,即是不采用事务处理----false相当于SQL中的“start Transaction”
			Statement st = con.createStatement();
			st.execute("insert into stud(id,sname,age) values(1010,'益阳1',25)");
			st.execute("insert into stud(id,sname,age) values(1010,'益阳2',28)");
			st.execute("insert into stud(id,sname,age) values(1012,'益阳3',25)");
			con.commit();
		 catch (Exception e) 
			System.out.println("回滚了....");
			con.rollback();
		finally
			con.setAutoCommit(true);//还原现场,还设成默认的即非事务处理状态
			con.close();
		
		
	















mysql事务(代码片段)

文章目录二、MySQL事务2.1、事务的概念2.2、事务的ACID特点①原子性(Atomicity)②一致性(Consistency)③隔离性(Isolation)ⅰ查询全局事务隔离级别:ⅱ查询会话事务隔离级别ⅲ设置全局事务隔离级别ⅳ... 查看详情

mysql的事务详解(代码片段)

...ySQL✨一句短话:难在坚持,贵在坚持,成在坚持!文章目录一.事务的业务场景二.事务的使用三.事务的特性(ACID)1.原子性(Atomicity)2.一致性(Consistency)3.持久性(Durability)4.隔离性(Isolation)四.事务并发异常1.脏读2.不可重复读3.幻读四.MySQL的... 查看详情

mysql事务隔离与spring(代码片段)

Spring学习事务的时候看到很多只读事务和事务隔离和事务传播和事务挂起,为了更好的理解学习了mysql这块的知识。本文用的SQL命令#------设置事务隔离登记-----#读已提交setsessiontransactionisolationlevelreadcommitted;#读未提交setsessiont... 查看详情

mysql的事务和引擎,注意细品(代码片段)

mysql事务和引擎一、MySQL事务(一)、MySQL事务的概念(二)、事务的ACID特点1、ACID特点2、数据不一致产生的结果:(三)、事务的隔离1、MySQL事物隔离级别1.1查询全局事务隔离级别1.2查询会话事务隔离级别1.3设... 查看详情

深入剖析mysql事务和spring事务(代码片段)

本文分享一些关于Mysql如何解决多事务并发的问题和Spring源码是怎么控制事务以及一些事务失效的场景。分享内容Mysql事务隔离机制锁机制MVCC多版本并发控制隔离机制Spring事务应用和源码分析事务失效问题一、Mysql事务数据库的... 查看详情

mysql事务隔离(代码片段)

阅读目录事务的介绍隔离级别1READUNCOMMITTED(未提交读)2READCOMMITTED(提交读)3REPEATABLEREAD(可重复读)SERIALIZABLE(可串行化)事务隔离的实现事务启动的方式事务的介绍事务就是一组原子性的sql查询,或者说是一个独立的工作单元。简... 查看详情

[mysql]事务acid详解(代码片段)

...历代表过去,能力代表现在,学习能力代表未来! 目录 1. 事务的概念2.事务的特性3.事务控制语法4.事务并发异常5.事务隔离级别1. 事务的概念事务指逻辑上的一组操作,组成这组操作的各个单元,除非全部正确执 查看详情

mysql—事务(代码片段)

事务一、事务的基本介绍概念:如果一个包含多个步骤的业务操作被事务管理,那么这些操作要么同时成功,要么同时失败操作:开启事务:starttransaction回滚:rollback提交:commitMySQL数据库中事务默认... 查看详情

mysql—事务(代码片段)

事务一、事务的基本介绍概念:如果一个包含多个步骤的业务操作被事务管理,那么这些操作要么同时成功,要么同时失败操作:开启事务:starttransaction回滚:rollback提交:commitMySQL数据库中事务默认... 查看详情

mysql:管理mysql事务(代码片段)

...户端,真正的MySQL服务器程序是mysqld,在后台运行.数据库事务具有ACID特性,用来保证多条SQL的全部执行。五、MySQL通过mysql命令行登录MySQLClient的可执行程序是mysql,MySQLServer的可执行程序是mysqld。MySQLClient和MySQLServer的关系如下:... 查看详情

重新整理mysql基础篇—————mysql事务[三](代码片段)

前言简单整理一下事务。正文事务有四大特性:1.原子性(atomicity)一个事务必须被视为一个不可分割的最小单元。2.一致性(consistency)数据库总是从一个一致性的状态转换到另一个一致性的状态。很多人对事务的一致性和原子性可能... 查看详情

mysql(十七)——事务(代码片段)

17.事务17.1什么是事务17.2与事务相关的语句17.3事务机制的存在价值17.4事务的执行过程17.5提交事务和回滚事务17.6事务的4个特性17.7事务的隔离性17.8验证各种隔离级别17.事务17.1什么是事务  一个事务其实就是一个完整的业务逻... 查看详情

mysql事务(代码片段)

@[TOC]Mysql事务简介事务四大特征(ACID)推荐:https://blog.csdn.net/lianghecai52171314/article/details/102782804原子性:事务是最小单位,不可再分,例如:update…insert…delete…一致性:所有的DML语句操作,必须 查看详情

mysql事务(代码片段)

@[TOC]Mysql事务简介事务四大特征(ACID)推荐:https://blog.csdn.net/lianghecai52171314/article/details/102782804原子性:事务是最小单位,不可再分,例如:update…insert…delete…一致性:所有的DML语句操作,必须 查看详情

mysql事务测试(代码片段)

setautocommit=0;--1开启自动提交事务0关闭自动提交事务1.读未提交:没有提交的事务修改数据也能读到,会产生->脏读setsessiontransactionisolationlevelreaduncommitted;(如果一个事务未提交然后回滚,另一个事务读取回未... 查看详情

mysql-09-笔记(代码片段)

事务事务TRANSACTION1.事务的概念2.事务的数据准备3.未管理事务演示4.管理事务演示5.事务的提交方式6.事务的四大特征(ACID)7.事务的隔离级别8.事务隔离级别演示9.隔离级别总结10.事务的总结事务TRANSACTION1.事务的概念一条或多条SQL语... 查看详情

mysql事务的实现原理(代码片段)

《深入理解分布式事务》第二章MySQL事务的实现原理文章目录《深入理解分布式事务》第二章MySQL事务的实现原理一、RedoLog1.RedoLog基本概念2.RedoLog基本原理3.RedoLog刷盘规则4.RedoLog写入机制5.RedoLog的LSN机制6.RedoLog相关参数二、UndoLog... 查看详情

mysql----事务transaction(代码片段)

事务初识事务事务提交方式自动提交手动提交事务操作方式及测试操作测试事务隔离级别初步理解(同时对于一致性的理解)隔离级别相关操作读未提交【ReadUncommitted】读提交【ReadCommitted】可重复读【RepeatableRead】串行化【serializab... 查看详情