JAVA基础 之 JDBC事务
程序员文章站
2022-04-06 18:49:37
...
概述:
1.当一个逻辑执行单元执行一系列的操作时,要么全部执行,要么全部不执行。
不能出现执行一半的情况。例如:取款机吐钱要做的操作:修改卡数据-吐钱
但是 在修改卡数据的时候 取款机故障了~,卡里的钱是扣了 但是没有吐出RMB,这就出大麻烦了
所以修改卡数据和吐钱 要么全执行,要么全不执行,上面的那种情况,取款机需要回滚,将执行过的修改卡数据的操作回到原来的状态。
2.4个特性 ACID(原子性、一致性、隔离性和持久性)
3.jdbc中的事务,只要设置是否自动提交即可
关闭自动提交,开启事务
开启自动提交,关闭事务
package com.cxy.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; /** * @author cxy */ public class TransactionTest { public static void main(String[] args) throws Exception { Class.forName("com.mysql.jdbc.Driver"); try ( Connection con=DriverManager.getConnection("jdbc:mysql://localhost/dbtest", "root", "root"); Statement stmt=con.createStatement(); ) { System.out.println("开启事务"); con.setAutoCommit(false); //关闭自动提交开启事务 stmt.executeUpdate("insert into t_student values ('sw1','事务1','男')"); stmt.executeUpdate("insert into t_student values ('sw2','事务2','女')"); con.rollback(); stmt.executeUpdate("insert into t_student values ('sw3','事务3','男')"); stmt.executeUpdate("insert into t_student values ('sw4','事务4','女')"); con.commit(); //如果你不提交那么本次操作不会对数据库造成任何 System.out.println("事务提交"); }catch(SQLException e) { System.out.println("数据库操作出现异常"); } } }
相关链接:
声明:
1.原创文章,转载请标明并加本文连接。
2.文章反映个人愚见,如有异议欢迎讨论指正
上一篇: 汉诺塔Tower of Hanoi
下一篇: Asp.net 引用css/js资源文件