实际上,一个 Java 应用系统,如果要操作数据库,则通过 JDBC 来实现的。增加、修改、
删除都是通过相应方法间接来实现的,事务的控制也相应转移到 Java 程序代码中。因此,
数据库操作的事务习惯上就称为 Java 事务。
(2)为什么需要 Java 事务
事务是为解决数据安全操作提出的,事务控制实际上就是控制数据的安全访问。举一个
简单例子:比如银行转帐业务,账户 A 要将自己账户上的 1000 元转到 B 账 户下面,A 账户
余额首先要减去 1000 元,然后 B 账户要增加 1000 元。假如在中间网络出现了问题,A 账
户减去 1000 元已经结束,B 因为网络中断而操作 失败,那么整个业务失败,必须做出控制,
要求 A 账户转帐业务撤销。这才能保证业务的正确性,完成这个操作就需要事务,将 A 账
户资金减少和 B 账户资金增加方 到一个事务里面,要么全部执行成功,要么操作全部撤销,
这样就保持了数据的安全性。
三、Java 事务的类型
Java 事务的类型有三种:JDBC 事务、JTA(Java Transacon API)事务、容器事务。
1、JDBC 事务
JDBC 事务是用 Connecon 对象控制的。JDBC Connecon 接口( java.sql.Connecon )提
供了两种事务模式:自动提交和手工提交。 java.sql.Connecon 提供了以下控制事务的方法:
public void setAutoCommit(boolean)
public boolean getAutoCommit()
public void commit()
public void rollback()
使用 JDBC 事务界定时,您可以将多个 SQL 语句结合到一个事务中。JDBC 事务的一个缺
点是事务的范围局限于一个数据库连接。一个 JDBC 事务不能跨越多个数据库。
2、JTA(Java Transacon API)事务
JTA 是一种高层的,与实现无关的,与协议无关的 API,应用程序和应用服务器可以使用
JTA 来访问事务。
JTA 允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新
数据,这些数据可以分布在多个数据库上。JDBC 驱动程序的 JTA 支持极大地增强了数据访
问能力。
如 果 计 划 用 JTA 界 定 事 务 , 那 么 就 需 要 有 一 个 实 现 javax.sql.XADataSource 、
javax.sql.XAConnecon 和 javax.sql.XAResource 接口的 JDBC 驱动程序。一个实现了这些接口