事务是什么?JDBC如何控制事务?

 

 

通俗的说,事务(Transaction)就是对数据执行的一组操作,

这些操作钭数据从一种状态更改为另一种状态,他们必须为一个

单元运行。

事务最主要的功能就是确保多个连续的操作必须全部执行成功,

否则回复到未执行任何数据操作的最初状态。也就是说事务 的

结果只有两种状况;事务完成(Transaction commit)

                  事务失败(Transaction abort)

当事务失败或异常中断时,事务就会回滚(Transacton roolback),

回复至数据的初始状态。

 

    start            

 

A,B账户存在,

A要转账1000元

 

A账户扣除1000元

 

B账户增加1000元

 

     end     

 

 

    start 

 

setAutoCommit(false)

 

Insert,delete,update

data on database    ---------------------->rollback

                          SQL Exception    

    commit    ------------------------->rollback

                    SQL Exception   

     end 

 

Auto Commit 设置为false.JDBC中,事务操作默认是自动提交,也就是说

一条数据操作就是一项事务,操作成功则commit,失败则rollback

 

可以将多个数据库操作作为一个事务,操作完成后手动调用commit

方法来进行整体提交;倘若其中一个操作打败,则都不会执行

到commit(),且将产生异常,此时就可以在异常捕获时调用

rollback()进行回滚。这样就保证了多个数据操作的原子性。

 

与事务处理相关的方法都在Connection类中:

void  setAutoCommit(boolean auto Commit)

boolean getAutoCommit()

void  commit()

void  rollback()

 

 

执行两个数据操作,先修改库中某条纪录,然后插入一条纪录,

插入的记录违反了数据库规则,例如主键重复,演示事务处理功能。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值