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();
            }
        }
    }
  • 相关阅读:
    数组实现队列
    qsort用法 (转)
    枚举法
    HDU 2293
    bfs 街道赛跑
    漫谈二分查找Binary Search (转)
    qsort 结构体二级排序实例
    优化枚举法
    10项比较重要的.NET技术
    ADO.NET SQL Provider 和 ADO.NET OLE DB Provider 和 ADO.NET ODBC Provider 性能对比。
  • 原文地址:https://www.cnblogs.com/susexuexi011/p/14353760.html
Copyright © 2011-2022 走看看