【事务】——事务简介——基础篇

   这篇文章主要介绍下事务的特性及概念,为后面的学习打下基础。


一、事务的概念


摘自百度百科:


   事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。
   
   事务通常由高级数据库 操纵语言或编程语言(如SQL, C++或Java)书写的 用户程序 的执行所引起,并用形如 begintransactio和 end transaction

语句(或 函数调用 )来界定。事务由事务开始( begin transaction )和事务结( endtransaction) 之间执行的全体操作组成。例 如:在 关系数据库

中,一个事务可以是一条SQL语句,一组SQL语句 或整个程序。




二、事务的特性

  


原子性:事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。


隔离性:多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据需要相互隔离。


持久性:一个事务一旦被提交,它对数据库中数据的改变就是永久性的,即使数据库发生故障也不应该对其有任何影响。


一致性:几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。




三、事务的隔离级别

 


 首先介绍几个概念:


脏读:一个事务读取了另一个事务改写但还未提交的数据,如果这些数据被回滚,则读到的数据是无效的。


不可重复读:在同一事务中,多次读取同一数据返回的结果有所不同。


幻读:一个事务读取了几行记录后,另一个事务插入一些记录,幻读就发生了,再后来的查询中,第一个事务就会发现有些原来没有的记录。


  


 针对以上出现的问题,事务的隔离级别就是解决上述问题的。Spring中提供了一个default,是底层数据库默认的隔离级别。




四、数据的传播行为

  


   需要调用两个service层才能完成一个业务,每个service层中都有一个自己的事务,这两个事务之间会发生冲突,事务的传播特性就是


解决这个问题的。

  

   以上就是基础的事务的概念,为后面介绍Spring中的事务打下基础。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值