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

    为了防止某些具有连带性的业务发生异常,导致数据库数据产生非正常的变化,需要对这些业务进行事务管理。这些被事务进行管理的一系列与数据库相关的操作,要么同时成功,要么同时失败。在进行如银行转账的关联操作的业务上,解决了不必要的麻烦。

    Java中通过数据库连接对象来进行事务管理

    这里以 mysql 例,在java中, mysql 默认开启事务自动提交,即没执行完一条完整的 mysql 语句,就会被提交,相当于每一条 mysql 语句被单独的事务进行管理。我们需要对多条 mysql 进行管理,所以,首先我们需要进行以下操作:

    1. 关闭默认的事务自动提交,即 开启事务管理,手动提交事务。

    2. 手动提交事务,当所有sql被正常执行完后,进行事务提交

    3. 事务回滚,当被事务管理的某条sql发生异常,则所有被事务管理的记录将会恢复到进入事务管理之前的状态。


    基本语法示例:

    ...
    try {
        /* 1.开启事务管理:关闭事务自动提交(通过数据库连接对象) */
        conn.setAutoCommit(false);
    
        // 预处理SQL
        ps = conn.prepareStatement(sql);
        // 设置SQL参数
        ps.setString(n, parameter);
        // 执行SQL语句
        ps.execute();
    
        /* 提交事务 */
        2.conn.commit();
    } catch (SQLException throwables) {
    
        /* 事务回滚 */
        try {
            if (conn!=null){
                conn.rollback();
            }
        } catch (Exception throwables) {
            throwables.printStackTrace();
        }
        throwables.printStackTrace();
    } finally {
        // 释放资源
        DB.close(rs,ps,conn);
    }
    ...
    
  • 相关阅读:
    从云计算到容器到容器云
    聊聊 CDN 缓存与浏览器缓存
    我眼中的 Nginx(六):深入 Nginx/Openresty 服务里的 DNS 解析
    HSTS 详解,让 HTTPS 更安全
    Polaristech 刘洋:基于 OpenResty/Kong 构建边缘计算平台
    Hadoop 2.7.4 HDFS+YRAN HA增加datanode和nodemanager
    hadoop HA学习
    Hadoop 2.7.4 HDFS+YRAN HA部署
    Grafana + Prometheus 监控PostgreSQL
    MySQL 导出用户权限
  • 原文地址:https://www.cnblogs.com/langkyeSir/p/13173196.html
Copyright © 2011-2022 走看看