博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java事务处理
阅读量:6337 次
发布时间:2019-06-22

本文共 2961 字,大约阅读时间需要 9 分钟。

事务

1.原子性

事务是应用中不可再分的最小逻辑执行体

2.一致性

事务的执行结果必须使数据库从一个一致性状态变到另一个一致性状态

3.隔离性

各个 事务的执行不干扰

4.持续性

事务一旦提交,对数据库所做的任何改变都记录到永久存储器中,即保存到了物理数据库

422101-20161226221134117-982496750.png

422101-20161226221138992-1406934867.png

Java中的事务

package ch13;import java.sql.*;/** * Created by Jiqing on 2016/12/26. */public class TransactionTest {    private String driver;    private String url;    private String user;    private String pass;    // 初始化参数    public void initParam() {        driver = "com.mysql.jdbc.Driver";        url    = "jdbc:mysql://127.0.0.1:3306/test";        user   = "root";        pass   = "123456";    }    public void insertInTransation(String[] sqls) throws Exception {        // 加载驱动        Class.forName(driver);        try (                Connection conn = DriverManager.getConnection(url,user,pass)) {            // 关闭自动提交            conn.setAutoCommit(false);            try(                    // 使用Connection来创建一个Statement                    Statement stmt = conn.createStatement()) {                    for (String sql : sqls) {                        stmt.executeUpdate(sql);                    }            }            // 回滚            // conn.rollback();            // 提交事务            conn.commit();        }    }    public static void main(String[] args) throws Exception {        TransactionTest tt = new TransactionTest();        tt.initParam();        String[] sqls = new String[] {                "insert into student values('1','Li')",                "insert into student values('2','Zhao')",                "insert into student values('3','Ji')"        };        tt.insertInTransation(sqls);    }}

422101-20161226221251617-78281452.png

增加回滚

package ch13;import java.sql.*;/** * Created by Jiqing on 2016/12/26. */public class TransactionTest {    private String driver;    private String url;    private String user;    private String pass;    // 初始化参数    public void initParam() {        driver = "com.mysql.jdbc.Driver";        url    = "jdbc:mysql://127.0.0.1:3306/test";        user   = "root";        pass   = "123456";    }    public void insertInTransation(String[] sqls) throws Exception {        // 加载驱动        Class.forName(driver);        try (                Connection conn = DriverManager.getConnection(url,user,pass)) {            // 关闭自动提交            conn.setAutoCommit(false);            try(                    // 使用Connection来创建一个Statement                    Statement stmt = conn.createStatement()) {                    for (String sql : sqls) {                        stmt.executeUpdate(sql);                    }            }            // 回滚            conn.rollback();            // 提交事务            conn.commit();        }    }    public static void main(String[] args) throws Exception {        TransactionTest tt = new TransactionTest();        tt.initParam();        String[] sqls = new String[] {                "insert into student values('4','Qian')",                "insert into student values('5','Sun')",                "insert into student values('6','Liu')"        };        tt.insertInTransation(sqls);    }}

内容不会被保存。

转载地址:http://zexoa.baihongyu.com/

你可能感兴趣的文章
环回接口(loopback interface)的新认识
查看>>
LINQ之路13:LINQ Operators之连接(Joining)
查看>>
数据结构--队列之C数组实现
查看>>
通过创建存储过程显示数据表的字段名和说明
查看>>
html5-css动画-2d
查看>>
字符串函数总结
查看>>
WAMP安装,期间提示丢失VCRUNTIME140.dll
查看>>
剑指offer 面试题43 n个骰子的点数 DP
查看>>
娱乐之佛像(转载)
查看>>
给一系列的div中的第一个添加class
查看>>
首尔最高旋转餐厅后厨一探究竟
查看>>
关于IOS的屏幕适配(iPhone)——资源适配
查看>>
pycharm安装pip
查看>>
LUA的编译、环境等
查看>>
fedora 修改home下的中文目录为英文目录
查看>>
[LeetCode] Number of Islands II
查看>>
分析linux中套接字的实现-------创建
查看>>
POJ3384:Feng Shui——题解
查看>>
软件测试面试准备
查看>>
【BZOJ】3502 PA2012 Tanie linie
查看>>