• 12.16


     今天学了

    简单事务处理
    在数据库应用中,在完成某个功能的过程中可能会涉及多个操作,只有多个操作都完
    成的时候,该功能才算完成。例如从一个账户向另外一个账户转账,需要从一个账户上扣
    钱,向另外一个账户上加钱,涉及两个更新操作,分别更新两个账户的余额,只有两个更
    新操作都完成的时候,转账功能才算完成。我们称这样的功能为事务。
    非常明显,对于事务来说,必须保证该事务所涉及的所有操作要么都完成,要么一个
    也不做,这个过程称为事务处理。
    Java 中提供了专门进行事务处理的 API,它在不同的 Java 应用服务器中有不同的实现。
    关于 Java 事务处理 API 的使用超出了本书的范围,所以这里只介绍如何使用 JDBC API 提
    供的功能完成简单的事务处理。
    使用 JDBC API 进行事务处理,主要是通过 Connection 接口完成。在前面介绍添加、更
    新和删除功能的时候,我们只要执行完 SQL 语句,执行的结果就可以反映到数据库中。实
    际上中间有一个提交的过程,默认情况下是自动提交。如果要进行事务处理,可以在事务
    所涉及的所有操作(执行 SQL 语句)都完成的时候再提交,这样就不能使用自动提交功能了。
    要禁止自动提交功能,可以使用下面的代码(con 是连接对象):
    con.setAutoCommited(false);
    设置完之后,所执行的 SQL 语句就不会直接反映到数据库中,只有提交之后才可以反
    映到数据库中。要提交所执行的操作,可以使用下面的代码:
    con.commit();
    下面是使用连接对象完成事务处理的框架:

    Connection con;
    Statement stmt;
    // 要执行的第一个 SQL 语句
    String sql1 = ...
    // 要执行的第二个 SQL 语句
    String sql2 = ...
    try
    {  ...// 创建或者获取连接
     ...// 创建语句对象
     con.setAutoCommited(false);
     // 执行第一个 SQL 语句
     stmt.executeUpdate(sql1);
     // 执行第二个 SQL 语句
     stmt.executeUpdate(sql2);
     // 提交事务
     con.commit();
    }catch(Exception e)
    {
     // 产生异常时候的处理代码
    }
    finally
    {
     // 关闭各种对象的代码
    } 
  • 相关阅读:
    AC自动机【学习笔记】
    SCOI2016 背单词【Trie树,贪心】
    【字符串算法】字典树Trie入门
    USACO 1.3 Name That Number【暴搜】
    MapReduce分组
    MapReduce排序
    博客园添加访问人数统计
    MapReduce的分区
    MapReduce的计数器
    MapReduce部分源码解读(一)
  • 原文地址:https://www.cnblogs.com/dty602511/p/14173793.html
Copyright © 2020-2023  润新知