JDBC 之 事务

1.概念:事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部不成功。

2.数据库开启事务的命令dtl:

Start transaction开启事务

Rollback回滚事务(撤销)

Commit提交事务

3.JDBC控制事务语句:

Connection.setAutoCommit(false);   ------start transaction

Connecttion.rollback();         ------roolback

Connection.commit();           ------commit

4.事务的特性(ACID)

(1)原子性(Atomicity)

原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。

(2)一致性(Consistency)

事务必须使数据库从一个一致性状态变换到另外一个一致性状态

(3)隔离性(Isolation)

事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,即多个并发事务之间要相互隔离。

(4)持久性(Durability)

持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响

5.事务的隔离级别

多个线程开启各自事务操作数据库中数据时,数据库系统要负责隔离操作,以保证各个线程在获取数据时的准确性。

如果不考虑隔离性,可能会引发如下问题:

(1)脏读:指一个事务读取了另外一个事务未提交的数据。

(2)不可重复读:针对一条记录的,同一条记录前后不一样

(3)虚读:幻读,同一张表前后不一样记录数

6.数据库共定义了四种隔离级别:

(1)Serializable:可避免脏读、不可重复读、虚读情况的发生。(串行化)

(2)Repeatable read:可避免脏读、不可重复读情况的发生。

(3)Read committed:可避免脏读情况发生。

(4)Read uncommitted:最低级别,以上情况均无法保证。(读未提交)

set   transaction isolation level设置事务隔离级别

select @@tx_isolation查询当前事务隔离级别

7.注意:

(1)先设置隔离级别,再开启事务。

Conn.setTransactionIsolation(Connection.*);

Conn.setAutoCommit(false);

(2)Connection中的setTransactionIsolation(int level)用于设置隔离级别

Level:Connection中的常量

8.案例:在JDBC代码中使如下转帐操作在同一事务中执行。

 



转载于:https://www.cnblogs.com/bigerf/p/6265840.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284915.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[转]后端程序员必备:书写高质量SQL的30条建议

以下文章来源于捡田螺的小男孩 ,作者捡田螺的小男孩 转载:《后端程序员必备:书写高质量SQL的30条建议》 前言 本文将结合实例demo,阐述30条有关于优化SQL的建议,多数是实际开发中总结出来的,希望对大家有…

GIS热词:AR、VR、MR辨析

AR、VR、MR技术让我们见识到了科技神奇的同时,也让真实可感的现实世界和无法触摸的虚拟世界的联系更加紧密。 1. AR AR,全称Augmented Reality,即增强现实技术。这项技术是利用电脑技术将虚拟的信息叠加到真实世界,通过手机、平板…

云原生数据库是未来数据库的天下

一、传统数据库的发展阶段和痛点 1)、传统数据库的发展阶段 ✨人工管理阶段 20世纪50十年代中期以前,计算机只是用来计算的,那么数据管理就只能纯人工. ✨文件系统管理阶段 20世纪50年代后期到60年代中期,这时硬件方面有了磁盘、磁…

用.NET做DDNS动态域名解析和SSL证书申请

本文主要介绍 IPv6 配置 DDNS 解析和 SSL 证书申请工具的开发历程和其中的相关知识。工具使用.NET开发,已开源,目前该工具的域名解析只支持阿里云。文中提及或使用的 .NET 开源项目:SangServerTool(DDNS,SSL证书申请工具&#xff…

汇编学习(一)

看的是王爽老师的《汇编语言》第三版基础知识 一.汇编语言的诞生上古时期在汇编语言还未出现的时候,那时的程序员还只能用二进制也就是所谓的机器语言写代码,将0和1编成的程序代码打在纸带或卡片上,再将纸带卡片输入计算机,进行运…

【GIS风暴】GeoJSON数据格式案例全解

在了解GeoJSON数据之前,先来通过一个网站和一个简单的代码案例,看一下GeoJSON的神奇魅力吧! 网站:http://geojson.io 打开上述网站,在左侧的代码区域粘入中国区域GeoJSON代码,如下所示: 中国地图: 地名:

[转]2020年5月程序员工资统计,平均14542元

平均工资 2020年5月全国招收程序员312761人。2020年5月全国程序员平均工资14542元,工资中位数12500 元,其中95%的人的工资介于5250元到35000元。 一线城市工资 2020年5月北京招收软件工程师24478人。2019年5月北京软件工程师平均工资19273元&#xff0…

云原生IDE:iVX免费的首个通用无代码开发平台

一、iVX简单介绍 1、iVX是什么东东? iVX 是一个 “零代码” 的可视化编程语言,拥有方便的 在线集成开发环境 ,不需要下载开发环境,打开浏览器即可随时随地的进行项目编辑;iVX 拥有 “一站式” 的云资源,通过这一套一…

.NET GC工作流程

前言在上文[如何获取GC的STW时间]一文中,我们聊到了如何通过监听GC发出的诊断事件来计算STW时间。里面只简单的介绍了几种GC事件和它的流程。群里就有小伙伴在问,那么GC事件是什么时候产生的?分别是代表什么含义?那么在本文就通过…

libco协程库源码解读

2019独角兽企业重金招聘Python工程师标准>>> 协程,又被称为用户级线程,是在应用层被调度,可以减少因为调用系统调用而阻塞的线程切换的时间.目前有很多协程的实现,由于微信内部大量使用了其直研的的libco协程库,所以我选择了腾讯开源的libco协程库进行研…

【ArcGIS风暴】如何将矢量数据(点、线、面)折点坐标转为GeoJSON格式?

本文以案例的形式,讲述在ArcGIS和QGIS专业软件中,将矢量数据转为GeoJSON的方法。 扩展阅读:【GIS风暴】GeoJSON数据格式案例全解 文章目录 一、ArcGIS将矢量数据转为GeoJSON二、QGIS将矢量数据转为GeoJSON一、ArcGIS将矢量数据转为GeoJSON ArcGIS中提供的【要素转JSON】工具…

TypeScript 3.9 正式发布!平均编译时长从 26 秒缩短至 10 秒

作者 | 微软官方博客 译者 | 核子可乐 策划 | 小智 稿源 | 前端之巅 今天,微软在其官方博客宣布:TypeScript 3.9 版本已经正式发布,详情见下文。 有些朋友可能对 TypeScript 还不太熟悉,这是一种以 JavaScript 为基础开发的语…

(二)Harbor WEB的使用

接上一篇《安装Harbor》,安装好之后,接下来我们就进行Harbor web界面的操作吧! 转载请标明出处:http://www.cnblogs.com/huangjc/p/6270405.html 浏览器登陆Harbor(默认用户密码:admin/Harbor12345&#x…

iVX低代码平台系列制作简单的登录界面

一、前言 iVX是啥,不理解的小伙伴可以猛戳这里 ----------------------点我 二、iVX平台和现有编程语言的对比 三、iVX平台和现有编程语言的对比 1、快速学习(周期短) iVX逻辑上相对是比较简单的 所以初学者的话只需要从逻辑和具体功…

Process.Start 为什么会引发“系统找不到指定的文件”异常

前言偶然发现,如果想用如下代码在 .NET 6 中打开指定 URL:Process.Start("https://baidu.com");会引发异常:而同样的代码在 .NET Framework 中是可以正常执行的。难道,.NET 6 下的实现逻辑不一样?深入探究通…

JVM 类型的生命周期学习

Java虚拟机通过装载、连接和初始化一个JAVA类型,使该类型可以被正在运行的JAVA程序所使用,其中,装载就是把二进制形式的JAVA类型读入JAVA虚拟机中;而连接就是把这种读入虚拟机的二进制形式的类型数据合并到虚拟机的运行时状态中去…

js对象数组中的某属性值 拼接成字符串

var arr[{id: "600", pId: null, name: "图形的变化"},{id: "630", pId: "600", name: "投影与视图"},{id: "631", pId: "630", name: "投影"},{id: "632", pId: "630",…

开店星简直就是国内优秀的开源商城系统天花板

一、场景 1、大学生毕业设计做商城系统背景 好家伙、又到开学季节了,师妹让我帮忙给指导大四的项目,作为毕业设计和为后面找工作积累项目经验,要搞一个买卖二手闲置品的商城小程序和PC端商城、希望能够快速学习、接入、修改部分功能&#xff…

【CASS精品教程】CASS9.1土方量的计算方法汇总

CASS9.1中,计算土方量的方法有:DTM法土方计算、断面法进行土方量计算、方格网法土方计算、等高线法土方计算、区域土方量平衡等。本文以案例的形式,详细讲解土方量的计算过程。 文章目录 一、DTM法土方计算二、断面法进行土方量计算三、方格网法土方计算四、等高线法土方计算…

VS2019 禁止Web项目停止调试后自动关闭浏览器(在浏览器窗口关闭时停止调试程序,在调试停止时关闭浏览器)

很多文章都说要修改以下两处与“编辑并继续”有关的选项: “编辑并继续”是一种省时的功能,使你能够在程序处于中断模式时更改源代码。 通过选择执行命令(如 "继续" 或 "单步执行")继续执行程序时&#xff0c…