-
虚读(幻读)的定义查看全部
-
不可重复读定义查看全部
-
脏读定义查看全部
-
不考虑隔离性问题查看全部
-
事务隔离级别(四种)查看全部
-
隔离级别就是解决这几种隔离问题的查看全部
-
PlatformTransactionManager接口的实现 什么情况,用什么实现类 常用的接口实现查看全部
-
Spring事务管理的常用接口 首先会根据TransactionDefinition事务定义的信息(比如定义了什么样的隔离级别,定义什么样的传播行为),由PlatformTransactionManager对事务进行管理,进行事务管理的过程中,事务会产生一些相应的状态,这些状态在TransactionStatus中。查看全部
-
事务指的是逻辑上的一组操作,这组操作要么全部成功,要么全部失败 事务的 ACID 事务具有四个特征:原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持续性( Durability )。 1 、原子性 事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做。 2 、一致性 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。(也就是李四和张三一共有4000块,进行转账,无论怎么转账都是4000) 3 、隔离性 一个事务的执行不能其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰。 4 、持续性 也称永久性,指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的。接下来的其它操作或故障不应该对其执行结果有任何影响。查看全部
-
Spring事务管理查看全部
-
//相关代码(声明式 III——基于注解的方式)——(上): @AccountServiceImpl.java package cn.muke.spring.demo4; /** * 转账案例的业务层实现类 */ /** * propagation :事务的传播行为。 * isolation :事务的隔离级别,比如,Isolation.DEFAULT:数据库默认级别。 * readonly :只读(不可进行修改、插入、删除操作,否则报错)。 * rollback-for :发生哪些异常回滚事务。 * no-rollback-for :发生哪些异常事务不回滚,继续提交。 * timeout :过期信息。 */ @Transactional(isolation=Isolation.DEFAULT,propagation=Propagation.REQUIRED) public class AccountServiceImpl implements AccountService { // 注入转账的DAO的类 private AccountDao accountDao; public void setAccountDao(AccountDao accountDao) { this.accountDao = accountDao; } /** * @param out :转出账号 * @param in :转入账号 * @param money :转账金额 */ public void transfer(String out, String in, Double money) { accountDao.outMoney(out, money); int i=1/0;//这样一来,上面可以成功执行,下面就不会得到执行 accountDao.inMoney(in, money); } }查看全部
-
声明式事务管理方式二:基于AspectJ的xml方式的配置 <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 配置事务的通知:(事务的增强) --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <!-- propagation :传播行为 isolation :隔离级别 read-only :只读 rollback-for :发生哪些异常时回滚 no-rollback-for :发生哪些异常时不回滚 timeout :过期信息 --> <tx:method name="transfer" propagation="REQUIRED"/> </tx:attributes> </tx:advice> <!-- 配置aop切面 --> <aop:config> <!-- 配置切入点 --> <aop:pointcut expression="execution(* cn.muke.spring.demo3.AccountService+.*(..))" id="pointcut1"/> <!-- 配置切面 --> <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut1"/> </aop:config>查看全部
-
声明式事务(代理) <!-- 配置事务管理 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 配置业务层的代理 --> <bean id="accountServiceProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <!-- 配置目标对象 --> <property name="target" ref="accountService"></property> <!-- 注入事务管理器 --> <property name="transactionManager" ref="transactionManager"/> <!-- 注入事务的属性 --> <property name="transactionAttributes"> <props> <!-- * PROPAGATION :事务的传播行为 * ISOLATION :事务的隔离级别 * readOnly :只读(不允许进行修改,插入,删除) * -Exception :发生哪些异常回滚事务 * +Exception :发生哪些异常事务不会滚。 --> <prop key="transfer">PROPAGATION_REQUIRED</prop> </props> </property> </bean>查看全部
-
主要事务查看全部
-
事务传播行为查看全部
举报
0/150
提交
取消