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

jdbc中的事务

?

?jdbc?事务

1.?什么是事务

所谓事务,就是针对数据库的一组操作(多条sql)

位于同一个事务的操作具备同步的特点,也就是要么都成功,要么都失败

?

2.?事务的作用

在实际中,我们的很多操作都是需要由多条sql来共同完成的,例如,A账户给B账户转账就会对应两条sql

update?account?set?money=money-100?where?name=a;

update?account?set?money=money+100?where?name=b;

假设第一条sql成功了,而第二条sql失败了,这样就会导致a账户损失了100元,而b账户并未得到100

?

如果将两条sql放在一个sql中,当第二条语句失败时,第一条sql语句也同样不会生效,

这样a账户就不会有任何的损失

?

?

3.?事务的实现原理

默认情况下,我们向数据库发送的sql语句是会被自动提交的,开启事务就是相当于关闭自动提交功能,改为手动提交,我们只需要将提交事务的操作放在最后一个操作,这样一来,如果在提交事务之前出现异常,由于没有执行提交操作,事务中未提交的操作就会被回滚掉

?

4.?例子

account.sql

create?table?account(

id?int?primary?key?auto_increment,

name?varchar(40),

money?float

)character?set?utf8?collate?utf8_general_ci;