日期:2014-05-16  浏览次数:20447 次

Oracle培训(三十二)—JDBC第四章知识点总结——JDBC高级特性2--事务,并发控制,行集

Oracle培训(三十二)—JDBC第四章知识点总结——JDBC高级特性2--事务,并发控制,行集



知识点预览


事务

并发控制

Row set(行集)

JDBC异常与警告


事务

1.      事务—银行转账问题

a)        张三将1000元钱转到李四的账号,程序处理需要的步骤:

1、张三的账号减掉1000元;

2、李四的账号增加1000元;

3、转账过程记录;

只有三个步骤全部正确完成转账才算成功。

b)       但是程序在实际运行时,执行完步骤1后,程序出现错误导致步骤2和步骤3无法顺利执行:

张三的钱少了1000元;

李四的钱没变;

1000元去了哪里?


2.      事务

a)        数据库:默认情下,JDBC的每个数据操作SQL语句都是自动提交,每个语句分开单独执行

b)       银行转账问题:需要多次数据操作才能完成

c)        可能产生的问题

需要多次数据操作才能完成的业务无法完成,数据不一致

d)       解决办法

银行转账问题:将完成转账功能的所有数据操作放在一起作为一个整体执行,要么全部都执行成功,要么全部恢复

e)        事务是指一个工作单元,它包含了一组添加,删除,修改等数据操作命令,这组命令作为一个整体向系统提交执行,要么都执行成功,要么全部恢复

f)        在JDBC中使用事务

con.setAutoCommit(false),取消自动提交

对数据库执行一个或多个操作(一个或多个SQL语句)

con.commit(),提交事务(上面的第二部的多个操作就作为一个整体提交执行)

如果某个