数据库事务相关



JDBC事务操作

事务(ACID)

原子性(atomicity):组成事务处理的语句形成一个逻辑单元,不能只执行其中的一部分

一致性(consistency):在事务处理执行前后,数据库是一致的(数据库数据完整性约束)

隔离性(isolcation):一个事务处理对另一个事务处理的影响

持续性(durability):事务处理的效果能够被永久的保存下来

 

Connection.setAutoCommit(true/false) 设置事务是否自动提交(jdbc默认提交事务)

Connection.commit() 提交事务

Connection.rollback() 回滚事务

 

JTA:跨数据库访问资源,分成两个阶段提交事务。  JTA容器

 

隔离级别:

可串行化:(Serializable)最安全,但是效率最低。

可重复读:(Repeatable read)有幻读可能(推荐)

读已提交:(Read committed)有不可重复读、幻读(推荐)

读未提交(Read uncommitted)脏读、不可重复读、幻读。安全性最差,效率最高。

 

(悲观锁、乐观锁)

锁机制主要是为了解决并发性问题的。

悲观锁:悲观锁,通常是由数据库机制实现的,在整个过程中把数据锁住(查询时),只要事务不释放(提交/回滚)那么任何用户都不能查看或修改。

 

乐观锁:大多数的使用是采用数据版本的方式(version)实现,一般在数据库中加入一个version字段在读取数据的时候将version读取出来,在保存数据的时候判断version的值是否小于数据库中的version值,如果小于不予更新,否则给予更新。

 

 

 

Hibernate对悲观锁和乐观锁都提供了支持

悲观锁:LockMode.UPGRADE(loadget 获得对象的时候设置该属性)

乐观锁:需要使用到version字段和配置(在对象中就要声明该version字段)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值