news 2026/7/4 9:52:17

spring - tx 事务 - 先看这个(事务的作用)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
spring - tx 事务 - 先看这个(事务的作用)

事务的作用 以及 为什么只有DML操作才需要提交事务?

为什么,只有DML操作,才需要提交事务?

DML(Data Manipulation Language)操作,包括:INSERTDELETEUPDATE、是用来修改数据库中数据的操作,

这些操作的特点是,它们会改变数据库的状态,即:它们会 添加新数据、修改现有数据、删除数据。

由于这些操作,直接涉及数据状态的改变,它们对数据的完整性和一致性有着直接的影响。


事务(Transaction)是一系列数据库操作的逻辑单元,这些操作要么全部成功执行,要么全部不执行。

事务的主要目的

是确保数据库,从一种一致的状态,转变为,另一种一致的状态, 如果事务中的某个操作失败,那么整个事务都应该回滚(Rollback), 即:撤销已经执行的所有操作,以确保数据库的一致性不被破坏。

对于DML操作来说,提交事务(Commit)是非常重要的,原因如下:

  1. 一致性保证

    通过提交事务,可以确保DML操作所做的更改被永久保存到数据库中。

    如果不提交事务,即使DML操作在逻辑上执行了,其更改也不会被保存到数据库中,这会导致数据的不一致状态。

  2. 隔离性

    事务的隔离性,确保了在事务执行期间,其他并发事务,无法看到该事务未提交的中间状态,

    这意味着,在事务完成并提交之前,其他事务不会受到该事务的影响。

  3. 回滚恢复

    如果DML操作在执行过程中出现错误或违反了一些约束(如唯一性约束),

    可以通过回滚事务来撤销这些操作,从而恢复数据库到操作之前的状态。

相比之下,DQL(Data Query Language)操作,如SELECT,只是用于检索数据,不会改变数据库的状态,

因此,它们不需要提交事务,

执行SELECT查询后,你获得的是查询结果的一个副本,对原始数据的任何修改都不会通过这个查询发生,

总之,

DML操作,需要提交事务来确保数据的一致性、隔离性和可恢复性,

而DQL操作则不需要提交事务,因为它们不涉及对数据库状态的修改。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/4 9:52:11

Spark MLlib 逻辑回归实战:基于8维消费行为特征实现用户性别预测

Spark MLlib 逻辑回归实战:基于8维消费行为特征实现用户性别预测在电商平台的用户画像构建中,性别预测是一个基础但至关重要的环节。传统的用户注册信息往往存在填写不准确或故意隐瞒的情况,而通过分析用户的消费行为特征,我们可以…

作者头像 李华
网站建设 2026/7/4 9:52:00

光伏并网逆变器硬件设计与控制策略详解

1. 光伏并网逆变器设计架构解析光伏并网逆变器作为新能源发电系统的核心设备,其设计质量直接影响整个电站的发电效率和运行稳定性。一套成熟的逆变器方案通常包含三个核心硬件模块:功率接口板、主控DSP板和驱动扩展板。这三个模块通过精密的软硬件协同实…

作者头像 李华
网站建设 2026/7/4 9:47:56

专业级AI绿幕抠像工具CorridorKey:从原理到实战的完整指南

专业级AI绿幕抠像工具CorridorKey:从原理到实战的完整指南 【免费下载链接】CorridorKey Perfect Green Screen Keys 项目地址: https://gitcode.com/gh_mirrors/co/CorridorKey 你是否曾面对绿幕素材中那些半透明的发丝、运动模糊的边缘,感到传统…

作者头像 李华
网站建设 2026/7/4 9:47:15

linux安装gitlab

方法一、设置gitlab的yum源(使用清华镜像源安装GitLab)gitlab-ce是它的社区版,gitlab-ee是企业版,是收费的。在 /etc/yum.repos.d/ 下新建 gitlab-ce.repo执行命令:cd /etc/yum.repos.d/vim gitlab-ce.repo[gitlab-ce]…

作者头像 李华
网站建设 2026/7/4 9:47:19

AI研究报告生成:如何高效完成国家级课题申报书?

深夜,实验室的灯还亮着,你对着电脑屏幕上的“国家级课题申报书”几个字发呆。文献下载了几十篇,研究思路也想了七八个,可一落到“可行性分析”这一部分,总觉得论证单薄,逻辑松散。评审专家会问:…

作者头像 李华
网站建设 2026/7/4 9:46:53

Sqlserver双活

要实现Sqlserver双活不是一件简单的事情,什么是双活,就是两边都活着,两边都可以访问,也就是A服务器部署一个sqlserver服务,B服务器部署一个sqlserver服务,两边数据双向同步保持一致,当A数据库服…

作者头像 李华