-
什么是事务 ?
用户定义一个数据库操作序列 这些操着要么成功要么失败是一个不可分割的工作单位 -
事务的特性 ?
ACID
原子性:指事务是一个不可分割的工作单位 事务中的操作要么发生要么不发生
一致性:指事物的前后数据的完整性必须保持一致
隔离性:指多个用户并发访问数据库时一个事物不能被其他用户的事物所干扰,多个事物之间数据需要相互隔离
持久性:指一个事物一旦提交 它对数据库的改变就是永久性的即使是五发生故障也不应该对其有任何影响 -
spring对事务的管理提供了哪些方式 ?
编程式事务管理(基于java编程控制)
声名式事务管理(基于springAOP配置控制)
基于xml
和基于注解 -
mybatis 和 jdbc 使用的事务管理器是 ?
DataSourceTransactionManager -
事务管理器依赖什么 ?
数据源 -
spring使用aop的编程思想对事务进行管理 , 使用的通知如何书写 ?
<!-- spring控制事务可以使用通知类 --> <!-- 这个通知类必须使用事物管理器来完成事物的控制 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <!-- spring通知管理事物是通过过滤方法来完成的 --> <!-- isolation:事务的隔离级别 propagation:事务的传播方式 read-only:是否只读 --> <tx:method name="zhuan" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="false"/> </tx:attributes> </tx:advice>
-
事务的传播方式 ?
PROPAGATION_REQUIRED(常用) PROPAGATION_SUPPORTS PROPAGATION_MANDATORY PROPAGATION_REQUIRES_NEW PROPAGATION_NOT_SUPPORTED PROPAGATION_NESTED Never
-
事务的隔离级别 ?
串行化 可重复读 读已提交 读未提交
-
如果不考虑事务的隔离级别 , 会发生哪些问题 ?
脏读 化读 不可重复读
-
spring AOP事务中的只读属性是什么意思 ?
若只对数据库进行读操作,可设置事务只读的属性,使用某些优化措施,数据库会进行优化处理。
-
如何将spring提供的事务通知织入到业务方法中 , 来管理事务 ?
使用<aop:config>标签,标签里面使用<aop:pointcut>标签设置切点,使用<aop:advisor>标签完成织入 <!-- 将事物织入到转账业务中 -->
aop:config
<aop:pointcut expression=“execution(* cn.bgs.service.TxService.*(…))” id=“pc”/>
<aop:advisor advice-ref=“txAdvice” pointcut-ref=“pc”/>
</aop:config> -
使用注解方式管理事务的步骤 ?
1.在xml中开启使用注解 2.在service接口实现类中使用@Transactional完成方法,里面可以传入参数 isolation:事务的隔离级别 propagation:事务的传播方式 read-only:是否只读
-
如何开启注解驱动 ?
<tx:annotation-driven transaction-manager="transactionManager"/>
-
在方法上面使用哪个注解可以完成spring对事务的管理 ? 都有哪些属性 ?
使用@Transactional注解可以完成对Spring事务的管理 属性:isolation:事务的隔离级别 propagation:事务的传播方式 read-only:是否只读
-
可以把spring管理事务的注解放在目标类上吗 ? 如果目标类上和方法上都有此注解表示什么 ?
可以 把注解放在方法上就是对目标方法使用事务 把注解放在目标类上就是对目标类使用事务 如果方法上和事务上都有会优先找方法上的事务如果方法上找不到会默认使用目标类是上的事务
-
什么时候用事务 ?
对数据库进行增删改操作是使用事务 对多个表同时操作是使用事务 对数据库有多种操作是使用事务
-
什么地方用事务 ?
一般会把事务放在service层中
事物的基本概念
最新推荐文章于 2020-10-27 14:45:08 发布