当前位置:Gxlcms > 数据库问题 > 数据库事务

数据库事务

时间:2021-07-01 10:21:17 帮助过:17人阅读

需要配置环境变量path

如果忘记Mysql目录,可以使用show variables like "basedir";查询

开启事务

 start transaction;

提交或者回滚事务

commit:提交事务, 数据将会写到磁盘上的数据库

rollback:数据回滚,回到最初的状态

关闭自动提交

show variables like ‘%commit%‘;

set autocommit=off;

技术分享图片

命令行演示事务过程:

技术分享图片

代码方式操作事务

代码里面的事务,主要是针对连接来操作的

  1. 通过conn.setAutoCommit(false )来关闭自动提交的设置

  2. 提交事务 conn.commit();

  3. 回滚事务 conn.rollback();

 1 public class TestDemo {
 2     @Test
 3     public void test() {
 4         try {
 5             Connection conn = DBUtils.getConn();
 6             //关闭自动提交
 7             conn.setAutoCommit(false);
 8             String sql = "update person set name = ? where id = ?";
 9             PreparedStatement ps = conn.prepareStatement(sql);
10             ps.setString(1, "admin");
11             ps.setInt(2, 3);
12             
13             int result = ps.executeUpdate();
14             System.out.println(result);
15             if(result>0) {
16                 conn.commit();
17             }else {
18                 conn.rollback();
19             }
20         } catch (SQLException e) {
21             e.printStackTrace();
22         }
23     }
24 }

事务的特性

  1.  原子性
    • 事务中包含的逻辑不可分割  
  2. 一致性
    • 事务执行前后的数据完整性  
  3. 隔离性
    • 事务在执行期间不受其他事务影响  
  4. 持久性
    • 事务执行成功后,数据应该持久保存在磁盘上  

 

数据库事务

标签:令行   自动提交   span   demo   回滚事务   mit   dmi   dstat   pat   

人气教程排行