首页 理论教育 Java程序设计:JDBC事务处理

Java程序设计:JDBC事务处理

时间:2023-11-01 理论教育 版权反馈
【摘要】:对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。通过SQLyog工具或者通过Query DBTest查询数据库testbank的bankaccount表,目前账户张三和李四账户余额各有100。现要求张三向李四转账100,该过程可分解为2步,首先是张三的账户余额减少100,然后李四的账户余额增加100。图11-38JDBC事务示例在JDBC中处理事务,都是通过Connection完成的。注意,同一事务中的所有操作,必须使用同一个Connection对象。图11-39查询事务提交后的表信息

Java程序设计:JDBC事务处理

事务就是一组原子性的SQL操作,或者说一个独立的工作单元。事务内的语句,要么全部执行成功,要么全部执行失败。事务有ACID四大特性:

(1)原子性(atomicity):一个事务必须视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚。对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。

(2)一致性(consistency):数据库总数从一个一致性的状态转换到另一个一致性的状态。

(3)隔离性(isolation):一个事务所做的修改在最终提交以前,对其他事务是不可见的。

(4)持久性(durability):一旦事务提交,则其所做的修改就会永久保存到数据库中。此时即使系统崩溃,修改的数据也不会丢失。

【例11-9】

演示JDBC事务处理

通过SQLyog工具或者通过Query DBTest查询数据库testbank的bankaccount表,目前账户张三和李四账户余额各有100。现要求张三向李四转账100,该过程可分解为2步,首先是张三的账户余额减少100,然后李四的账户余额增加100。这两步操作组成一个事务,要么都成功,要么都失败。(www.xing528.com)

在chapter11项目src文件夹cn.linaw.chapter11.demo01包下创建一个Transaction Test类,源代码如图11-38所示。

图11-38 JDBC事务示例

在JDBC中处理事务,都是通过Connection完成的。注意,同一事务中的所有操作,必须使用同一个Connection对象。本例程序执行后,查看数据库中的bankaccount表,如图11-39所示。

图11-39 查询事务提交后的表信息

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈