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();
            }
        }
    }
  • 相关阅读:
    策略模式
    Properties类学习笔记
    System类学习笔记
    一个反射的妙用案例
    new 对象时的暗执行顺序
    常用数据库默认端口号
    java对日开发常用语(词汇)总结
    java开发中常用语(词汇)含义
    MyBatis 常用词汇含义
    java SE,EE,ME区别
  • 原文地址:https://www.cnblogs.com/susexuexi011/p/14353760.html
Copyright © 2011-2022 走看看