• 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();
            }
        }
    }
  • 相关阅读:
    【POJ1961 Period】【KMP】
    浅谈KMP算法
    【关于动态开点线段树】
    【POJ3349 Snowflake Snow Snowflakes】【Hash表】
    【NOI 2002 银河英雄传说】【带权并查集】
    路径问题
    group_concat函数详解
    MySQL中GROUP_CONCAT中排序
    怎么实现CSS限制字数,超出部份显示点点点.
    jsp去掉小数点
  • 原文地址:https://www.cnblogs.com/susexuexi011/p/14353760.html
Copyright © 2020-2023  润新知