zoukankan      html  css  js  c++  java
  • JDBC——事务

    事务

    1.一个包含多个步骤的业务操作,如果这个业务被事物管理,要么同时成功,要么同时失败。

    2.使用Connection对象来管理事务

    开启事务:setAutoCommit(boolean autoCommit)设置参数为false,即开启事务;

    提交事务:commit();

    回滚事务:rollback();

    练习:

    public static void main(String[] args) {
        Connection  conn=null;
        PreparedStatement pstmt = null;
        PreparedStatement pstmt2 = null;
        try {
            conn = JDBCUtils.getConnection();
            conn.setAutoCommit(false);//开启事务
            String sql = "update acount set balance=balance - ? where id=?";
            String sql2 = "update acount set balance=balance + ? where id=?";
            pstmt = conn.prepareStatement(sql);
            pstmt2 =conn.prepareStatement(sql2);
            pstmt.setDouble(1,500);
            pstmt.setInt(2,1);
            pstmt2.setDouble(1,500);
            pstmt2.setInt(2,2);
            pstmt.executeUpdate();
            pstmt2.executeUpdate();
            conn.commit();//所有sql语句执行完毕以后提交事务
        } catch (Exception e) {
            try {
                //只要出现异常就进行回滚操作,所以在catch里写回滚操作;
                //同时将捕获异常扩展为最高父类
               if(conn!=null) conn.rollback();
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
            e.printStackTrace();
        }finally {
            JDBCUtils.close(conn,pstmt);
            try {
                pstmt2.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    我所了解的meta
    移动端遇到的问题
    反编译工具
    Nginx安装及配置免费HTTPS证书
    Python中通过lambda抛异常的奇技淫巧
    理解PEP333-WSGI
    Doker学习笔记之一:安装
    《程序员修炼之道》备忘清单
    日常开发工具列表
    NLP入门资料
  • 原文地址:https://www.cnblogs.com/susexuexi011/p/14353760.html
Copyright © 2011-2022 走看看