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