了解Spring的事务

数据库事务:
ACID四大特性:
1.原子性atomicity:事务的原子性确保动作要么全部完成,要么完全不起作用
2.一致性consistency:执行事务的前后,数据要保持一致。
3.隔离性isolation:并发访问数据库时,一个用户的是会务不被其他事务所干扰,各自事务之间的数据库是独立的
4.持久性durability:一个事务被提交后,保持的数据是持久的。
解决问题的方式
如果出现数据库错误操作,系统可以以事务作为边界恢复
多个用户同时操作数据库时,数据库可以为事务为单位进行并发控制
常见的并发异常有:脏写,丢失更新,脏读,不可重复读,幻读

事务锁:通常分为共享锁和排他锁
共享锁(S 锁):多个事务对同一个数据可以共享一把锁,可以访问数据,但是只能读,不能修改
加锁方式 SQL语句后加上 LOCK IN SHARE MODE;
排它锁(X锁):一个事务获取了一个数据行的排它锁,其他事务就不能在获取改行的锁
加锁方式:delete/update/insert 默认加上了X锁,在SQL语句后加上 FOR UPDATE

eg:意向共享锁,意向排他锁

事务隔离级别:TransactionDefinition定义了五个表示隔离级别的常量
1.TransactionDefinition.ISOLATION_DEFAULT表示默认值
2.TransactionDefinition.ISOLATION_READ_UNCOMMITTED表示可以读取另一个事务的修改没有提交的数据,它不能防止脏读,不可重复读和幻读
3.TransactionDefinition.ISOLATION_READ_COMMITTED,事务可以读取另一个事务已经提交的数据,可以防止脏读
4.TransactionDefinition.ISOLATION_REPEATABLE_READ 多次重复执行某个查询,可以防止脏读,不重复读
5.TransactionDefinition.ISOLATION_SERIALIZABLE,依次执行,可以防止脏读,不可重复读和幻读,但是它会严重影响程序的性能。

基于注解的事务:
1.在需要事务的Dao类中加上@Transactional注解
2.在需要事务的管理方法中加上@Transactional(propagation=Propagation.REQUIRED)的类似注解
3.配置文件中执行注解驱动<tx:annotation-driven transaction-manager=“transactionManager” />

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值