zoukankan      html  css  js  c++  java
  • JDBC事务管理

    1. 概述

      事务是包含多个操作的业务,如果这个业务被事务管理,则这多个操作要么全部被执行,要么全不执行。

      具体原理详见我的SQL系列文章"事务":https://www.cnblogs.com/NyanKoSenSei/p/11498978.html

     

    2. 管理事务

      (1) 开启事务

        执行SQL之前需要开启事务,建议获取连接后就将事务开启。

      (2) 提交事务

        当所有SQL完成无错后,立即提交事务,防止意外导致回滚。

      (3) 回滚事务

        在有错误抛出异常的时候回滚事务。

        注意:

          1) 由于可能面对各种各样的错误导致操作异常,建议将 catch 中的异常范围设置为 Exception 。

          2) 由于可能是没有获取连接就抛出异常请求回滚事务,回滚事务前需要判断是否已获得连接,获得连接的事务才可以回滚。

          3) 如果事务提交以后,再次捕捉到了错误导致的回滚操作,并不影响最近事务提交后的数据。

      例子

    public static void main(String[] args) {
            Connection conn = null;
            PreparedStatement pstmt = null;
            try {
                // 获取连接
                conn = JDBCUtils.getConnection();
                // 开启事务
                conn.setAutoCommit(false);
                // 编写SQL
                String sql = "SQL语句";
                // 获取执行SQL对象
                pstmt = conn.prepareStatement(sql);
                // 执行SQL
                pstmt.executeUpdate();
                // 提交事务
                conn.commit();
            } catch (Exception e) {
                // 事务回滚
                try {
                    if (conn != null) {
                        conn.rollback();
                    }
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
                // 抛出异常
                e.printStackTrace();
            } finally {
                // 释放资源
                JDBCUtils.close(pstmt, conn);
            }
        }
  • 相关阅读:
    svn使用
    canvas入门-3渐变方法
    canvas入门-2路径、文字
    canvas入门-1三种填充方式、渐变、模式
    jquery extend的使用
    angular入门-ngOptions
    jquery-EasyUI---panel面板的用法
    jquery-EasyUI---tooltip提示框的使用
    jquery-EasyUI---progressbar进度条的的使用
    jquery-EasyUI---searchbox搜索框的用法
  • 原文地址:https://www.cnblogs.com/NyanKoSenSei/p/11558292.html
Copyright © 2011-2022 走看看