2018-02-25 使用jdbc实现事务回滚(二)

笔记如下

Start transaction ----开启事务
...
Rollback ---- 回滚事务
Commit---- 提交事务

/*
     * 设置回滚点是为了提高效率
     * 
     */
    
    //回滚点的使用
    @Test
    public void test2() {
        
        Connection conn =null;
        Statement stmt=null;
        Savepoint sp = null;
        
        try {
            
            conn = JdbcUtils.getConnection();
            
            conn.setAutoCommit(false);
            
            stmt = conn.createStatement();
            
            
            //设置回滚点,在小单元的前面
            sp = conn.setSavepoint();
            
            
            //aaa----bbb转账一百
            stmt.executeUpdate("update account set money=money-100 where name='aaa'");
            stmt.executeUpdate("update account set money=money+100 where name='bbb'");
            
            
            
            //设置回滚点,在小单元的后面
            sp = conn.setSavepoint();
            
            
            //bbb ----ccc转账一百
            stmt.executeUpdate("update account set money=money-100 where name='bbb'");
            stmt.executeUpdate("update account set money=money+100 where name='ccc'");
        
        } catch (Exception e) {
            // TODO: handle exception
            
            try {
                conn.rollback(sp);
            } catch (SQLException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            e.printStackTrace();
        }finally {
            
            try {
                conn.commit();//确认了开启事务到回滚点这段的操作
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            JdbcUtils.release(null, stmt, conn);
            
        }
        
        
        
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 导语:计算机硬件在飞速发展,数据规模在急速膨胀,但是数据库仍然使用是十年以前的架构体系,WiredTiger 尝试...
    isgiker阅读 3,465评论 0 7
  • 本篇文章主要介绍的是 MySQL / JDBC 中的事务,为了方便读者浏览,这里默认需要读者已经掌握 SQL基础 ...
    SawyerZh阅读 1,629评论 7 31
  • 来源转载自:http://www.cnblogs.com/ymy124/p/3718439.html MySQL的...
    Mrwangs阅读 1,965评论 0 8
  • 很多人喜欢这篇文章,特此同步过来 由浅入深谈论spring事务 前言 这篇其实也要归纳到《常识》系列中,但这重点又...
    码农戏码阅读 4,791评论 2 59
  • 五期D10:平均销货天数/存货周转率 今天学习的是“经营能力”的第二个指标“存货周转率“。 一、概念 什么叫“经营...
    酱油君阿爸阅读 263评论 0 1