赞
踩
把一组业务当成一个业务来做;要么都成功,要么都失败,保证业务操作完整性的一种数据库机制。
连接数据库的配置文件
xml配置
注意:spring容器提供了一个JdbcTemplate类,用来方便操作数据库。
可以在xml配置文件里面加上,将其注册为bean组件
测试DruidDatasource有没有连接上
增删改查
ACID 四大特性
A 原子性:原子性指的是 在一组业务操作下 要么都成功 要么都失败
在一组增删改查的业务下 要么都提交 要么都回滚
C 一致性:事务前后的数据要保证数据的一致性
在一组的查询业务下 必须要保证前后关联数据的一致性
I 隔离性:在并发情况下 事物之间要相互隔离。
D 持久性:数据一旦保存就是持久性的
声明式事务:在方法的外部添加注解或者直接在配置文件中定义,将事务管理代码从业务方法中分离出来,以声明的方式来实现事务管理。spring的AOP恰好可以完成此功能:事务管理代码的固定模式作为一种横切关注点,通过AOP方法模块化,进而实现声明式事务。
@Transactional注解应该写在哪:
@Transactional 可以标记在类上面(当前类所有的方法都运用上了事务)
@Transactional 标记在方法则只是当前方法运用事务
也可以类和方法上面同时都存在, 如果类和方法都存在@Transactional会以方法的为准。
如果方法上面没有@Transactional会以类上面的为准
建议:@Transactional写在方法上面,控制粒度更细, 建议@Transactional写在业务逻辑层上,因为只有业务逻辑层才会有嵌套调用的情况
用来解决并发事务所产生一些问题:
并发: 同一个时间,多个线程同时进行请求。
什么时候会生成并发问题:在并发情况下,对同一个数据(变量、对象)进行读写操作才会产生并发问题
并发会产生什么问题?
1.脏读
2.不可重复度
3.幻影读
解决方法:
一 脏读
注意:一般基于注解来实现事务的话,在方法上加上 @Transactional注解就行,如果需要加什么属性,再额外加上即可
注意:xml的事务配置可以和注解的事务配置同时使用,如果同时使用,注解的优先级更高
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。