最后
金三银四到了,送上一个小福利!
2、如何在Spring中进行事务控制?
(1)配置事务管理器(DataSourceTransactionManager)
(2)配置事务通知+事务属性+事务隔离级别
(3)配置切入点
(4)组装切面
代码案例:
- 配置事务管理器
- 配置事务通知+事务属性
<tx:advice id=“txAdvice” transaction-manager=“transactionManager”>
tx:attributes
<tx:method name=“insert*” propagration=“REQUIRED” read-only=“true”></tx:method>
<tx:method name=“update” propagration=“REQUIRTED” read-only=“true”></tx:method>
<tx:method name=“select*” propagration=“SUPPORTS”></tx:method>
</tx:attributes>
</tx:advice>>
- 配置切入点
aop:configur
<aop:pointcut id=“pointcut” value=“execution(* com.tjcu.ServiceImpl.(…))”>aop:pointcut
</aop:configur>
- 组装切面
aop:configur
<aop:advisor advice-rel=“txAdvice” pointcut-rel=“pointcut”></aop:advisor>
</aop:configur>
- spring整合Mybatis标准开发步骤(DAO层+Service层)
3、常见的数据库隔离级别有哪些 以及 分别解决什么问题?
(1)数据库事务隔离级别:
解决事务并发时存在 如:藏独,不可重复读,幻读的情况
(2)隔离级别
-
read_UnCommitted:已未提交事务:出现脏读,一个客户端添加某个数据,还没提交,另外的客户端就可以读到未提交的事务,会脏读
-
read_committed:读已提交,Oracle的默认事务隔离级别,解决脏读问题,一个客户端添加某个数据,还没提交,另外的客户端不能读到未提交的事务
-
repeatable:可重复读,解决事务的脏读和不可重复读问题,mysql默认的事务隔离级别
-
serializable:序列化读
(3)幻影读
幻影读:一个事务添加数据,另一事务对表中的数据进行多次查询,但查询的结果不一致。
4、Spring中的事务传播性解决什么问题 及 常见取值的区别是什么?
(1)概念
事务的传播性,解决因事务嵌套 而导致事务没法控制的问题。
(2)常用取值及区别
- REQUIRED
含义:如果外部没有事务,则开启新的事务;如果外部存在事务,则融合到外部的事务中。
最后
给大家送一个小福利
附高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。