`

MySQL 事务处理

阅读更多

MySQL  事务处理

 

 MySQL  事务

  • 在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务
  • 事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行
  • 事务用来管理insert,update,delete语句

关于事务的术语:

  • 事务(transaction):指一组SQL语句
  • 回滚(rollback):指撤销指定SQL语句的过程
  • 提交(commit):指将未存储的SQL语句结果写入到数据库中
  • 保留点(savepoint):指事务处理中设置的临时占位符,可以对它进行回滚。

事务处理的关键在于将SQL语句组分解为逻辑块,并明确规定数据何时应该回滚,何时应该提交。

回滚事务

start transaction;/*开始事务*/
delete from t_tableA where id=1;
rollback;/*事务回滚*/



提交事务

start transaction;
delete from t_tableA where id=1;
commit;/*提交事务*/



保留点

start transaction;
delete from t_tableA where id=4;
savepoint s1;/*声明一个保留点*/
delete from t_tableA where id=5;
rollback to s1;/*回滚到s1保留点*/



事务的四个特征(ACID属性)

  1. 原子性(Atomic):组成事务的处理语句组成了一个逻辑单元,这是最小的逻辑单元。
  2. 一致性(Consistent):在事务处理之前和之后,数据是一致的。
  3. 隔离性(Isolated):一个事务的处理对另一个事务的处理没有影响。
  4. 持续性(Durable):当事务处理成功后,其结果在数据库中被永久记录下来。


JDBC中使用事务

Class.forName("com.mysql.jdbc.Driver");        
Connection conn = DriverManager.getConnection("jdbc:mysql:///db", "root", "root");

conn.setAutoCommit(false);//取消自动提交

PreparedStatement stat = null;
try {
    String sql = "INSERT INTO t_user(`name`) VALUES('xyz1')";
    String sql2 = "INSERT INTO t_user(`name`) VALUES('xyz2')";
    
    stat = conn.prepareStatement(sql);
    stat.executeUpdate();
    
    Savepoint sp1 = conn.setSavepoint();
    
    stat = conn.prepareStatement(sql2);
    stat.executeUpdate();
    
    conn.rollback(sp1);//回滚到保留点,即跳过了sql2语句
    conn.commit();
} catch (Exception e) {
    e.printStackTrace();
    conn.rollback();//出现异常,SQL不执行
} finally {
    stat.close();
    conn.close();
}

 

分享到:
评论

相关推荐

    mysql事务处理用法与实例详解

    ### MySQL事务处理用法与实例详解 #### 一、事务的概念及重要性 在数据库管理中,事务(Transaction)是指一系列作为一个整体的操作序列。这些操作要么全部成功,要么全部失败,不能只执行其中的一部分。事务处理...

    nodejs + mysql 事务处理问题

    nodejs + mysql 事物处理问题 呵呵 看了就知道 记得npm install啊 需要的东西啊 本想免费 苦于没积分 ,需要的的同学,给点分吧

    Java实现的mysql事务处理操作示例

    "Java实现的mysql事务处理操作示例" 本文主要介绍了Java实现的mysql事务处理操作,结合实例形式较为详细的分析了Java基于JDBC操作mysql数据库实现事务处理的相关概念、操作技巧与注意事项。 事务处理是数据库操作...

    mySQL事务处理

    关于mysql的事务处理 public static void StartTransaction(Connection con, String[] sqls) throws Exception { if (sqls == null) { return; } Statement sm = null; try { // 事务开始 System....

    MySql事务处理.docx

    MySQL 事务处理是数据库管理系统中的关键特性,主要用于确保数据操作的安全性和一致性。在MySQL中,事务主要应用于支持事务的存储引擎,如InnoDB或BDB。这些存储引擎能够提供事务的四大特性:原子性(Atomicity)、...

    mysql 事务处理学习资料+示例说明

    根据提供的文件信息,本文将详细解释MySQL事务处理的相关知识点,并结合具体的示例代码进行说明。 ### MySQL事务处理基础 在数据库操作中,事务处理是非常重要的一个环节,它能够确保数据的一致性和完整性。MySQL...

    MySQL事务处理详细讲解及完整实例

    本详细讲解将深入探讨MySQL事务处理的各个方面,并通过实例帮助你更好地理解和应用。 一、事务的基本特性 事务具有四大特性,也被称为ACID属性: 1. 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部...

    Mysql事务处理详解

    MySQL事务处理详解主要涵盖事务的基本概念、特性以及事务隔离级别,这些都是数据库管理中至关重要的概念。MySQL中的事务主要用于处理大量且复杂的操作,确保数据的一致性和完整性。 首先,事务是MySQL数据库操作的...

    MySQL事务处理与并发访问.pdf

    MySQL事务处理与并发访问.pdf

    php实现mysql事务处理的方法

    本文实例讲述了php实现mysql事务处理的方法。分享给大家供大家参考。具体分析如下: 要实现本功能的条件是环境 mysql 5.2 /php 5 支持事务的table 类型,需要InnoDB,有了这些条件你就可以做上面的实现了,这个事物回滚...

    MySql事务处理.pdf

    MySQL中的事务处理是数据库管理的重要组成部分,主要目的是确保数据的一致性和完整性。事务是一组SQL语句,它们作为一个单元执行,要么全部成功,要么全部回滚,这确保了原子性。事务处理的引入是为了解决多用户、多...

    mysql事务处理[归类].pdf

    MySQL的事务处理是数据库管理中的核心功能,尤其在软件开发中,确保数据一致性、安全性和可靠性至关重要。事务处理允许数据库操作作为一个不可分割的整体执行,确保数据的完整性和一致性。在人员管理系统等应用中,...

    php下pdo的mysql事务处理用法实例

    接下来,我们来看PHP下PDO的MySQL事务处理实例。以下是几个关键步骤: 1. **关闭自动提交**:在开始事务之前,需要关闭自动提交模式。在PDO中,可以通过设置`PDO::ATTR_AUTOCOMMIT`属性为0来实现。例如: ```php ...

    MySQL事务处理与应用简析

    MySQL事务处理是数据库管理系统中的关键特性,特别是在需要确保数据完整性和一致性的商务级应用中。事务是一组数据库操作,它们被视为单个逻辑工作单元,必须全部成功执行或全部不执行。这种机制对于防止数据错误和...

    MySQL事务剖析1

    综上,MySQL事务处理是数据库系统中不可或缺的部分,它通过ACID特性、隔离级别、MVCC和锁机制确保数据的一致性,并在Java、Spring等开发环境中提供了便捷的事务管理接口。理解并合理使用这些概念和机制,对数据库...

Global site tag (gtag.js) - Google Analytics