SQLServer-03-事务

1.事务

1.概念

作为单个逻辑工作单元执行的一系列操作(作为一个整体执行sql语句的要么全部执行,要么全不执行)

2.什么情况使用显示事务

一个操作执行多条新增,修改,或者删除的时候需要使用显示事务

3.事务的特性

ACID

原子性(Atomicity),一致性(Consistency),隔离性(lsolation),永久性()

4.主要的语句

begin transaction,commit transaction,rollback transaction

例如:

declare @errorSum int

set @errorSum = 0

begin transaction

update bank set currentMoney = currentMoney + 100 where id=1

set @errorSum = @errorSum + @@error确定语句是否会出错,看最后errorSum是否还是最初的值

update bank set currentMoney = currentMoney - 100 where id=2

set @errorSum = @errorSum + @@error每一句的sql都要带上这一句

if @errorSum = 0

begin

print (“没有错误,提交”)

commit transaction

end

else

begin

print (“错误,回滚”)

rollback transaction

end

如果有三个人去钟楼,其中一个人已经到达钟楼了,而有一个人却半路车坏了不能去了,而第三个人在半路上,那么最后因为有一个人不能去了,所以另外两个人不管在哪都会回到起点,即使已经有人到达了重点。即是事务的一致性特点,只要有一个语句不能执行那么其他的语句都要回到最开始没有执行的状态,即使已经有一条语句执行了。

5.事务的类别

显示事务,隐示事务(自动提交事务)

执行一条语句是隐示事务

6.java中进行事务的控制

con.setAutoCommit(false)

con.commit()

con.rollback()

Ctrl +1 可以try catch 块

Ctrl + t 可以找到接口的实现类

找到Driver接口,然后找到实现类,然后在界面调用这个实现类,出现一个import 后面的东西就是class.forname

里面的东西;

在一开始,con.getAutoCommit()为true,即默认自动提交

流程:*

1.con.setAutoCommit(false)

2.执行sql语句

3.如果没有异常那么直接con.commit()

(记住如果将自动提交改为了false,那么一定要有提交这一句话,不然数据库是不会有变化的)

如果有异常即把con.rollback() 放到异常块里处理

statement 可以不一样,但是必须保证connection是一样的,保证执行多条sql的tistatement是由同一个connection创建的,即要在一个链接下做事情。如果想在两个链接下做事情,jta技术。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值