-
TransactionStatus接口定义了获得和判断事物状态的方法查看全部
-
事务的传播行为:主要是解决业务层方法之间的相互调用的问题 事务的传播行为有七种,又分为三类: 第一类共同点:如果 A 方法中有事务,则调用 B 方法时就用该事务,即:A和B方法在同一个事务中。 PROPAGATION_REQUIRED:如果 A 方法中没有事务,则调用 B 方法时就创建一个新的事务,即:A和B方法在同一个事务中。 PROPAGATION_SUPPORTS:如果 A 方法中没有事务,则调用 B 方法时就不使用该事务。 PROPAGATION_MANDATORY:如果 A 方法中没有事务,则调用 B 方法时就抛出异常。 第二类共同点:A方法和B方法没有在同一个事务里面。 PROPAGATION_REQUIRES_NEW:如果 A 方法中有事务,则挂起并新建一个事务给 B 方法。 PROPAGATION_NOT_SUPPORTED:如果 A 方法中有事务,则挂起。 PROPAGATION_NEVER:如果 A 方法中有事务,则报异常。 第三类:如果 A 方法有的事务执行完,设置一个保存点,如果 B 方法中事务执行失败,可以滚回保存点或初始状态。 @重点的三种:PROPAGATION_REQUIRED, PROPAGATION_REQUIRES_NEW, PROPAGATION_NESTED。查看全部
-
使用事务时会出现的安全问题: 1.脏读:一个事务读取了另一个事务改写但还未提交的数据,如果这些数据回滚,则读到的数据是无效的; 2.不可重复读:在同一事务中,多次读取同一数据返回的结果有所不同; 3.幻读:一个事务读取了几行记录后,另一个事务插入一些记录,幻读就发生了,再后来的查询中,第一个事务就会发现有些原来没有的记录; 隔离级别可以解决以上问题,事务的四种隔离级别如下: PS:mysql数据库默认采用的隔离级别:REPEATABLE_READ;oracle数据库默认采用的隔离级别:READ_COMMITTED查看全部
-
Spring为不同的持久化框架提供了不同的平台事务管理接口实现:查看全部
-
Spring事务管理:查看全部
-
事务:指的是逻辑上的一组操作,这组操作要么全部成功,要么全部失败 事务的四大特性: 原子性:指的是事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生; 一致性:指的是事务前后数据的完整性必须保持一致; 隔离性:指的是多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要相互隔离(通过在数据库中设置隔离级别); 持久性:指的是一个事务一旦被提交,它对数据库中数据的改变是永久性的,即使数据库发生故障也不应该对其有任何影响。查看全部
-
事物的传播行为:主要是解决业务层方法之间的相互调用的问题查看全部
-
事务隔离级别查看全部
-
使用原始的TransactionProxyFactoryBean查看全部
-
事务管理常用接口查看全部
-
事务管理分类查看全部
-
Spring事务管理总结,以及各种方式的特点:查看全部
-
事务的传播行为:主要是解决业务层方法之间的相互调用的问题查看全部
-
这是一种经常使用的事务声明方式,基于aspectj(切面)配置。在配置文件中配置完dataSourceTransactionManager之后,使用spring提供的命名空间为<tx:advice>的标签给事务配置属性,比如传播行为、隔离级别、异常处理等等,这是一种基于面向切面的配置方式,可以在任何想要事务处理的地方使用,其次就是使用aop的声明式方式完成advice和pointcut的横切面配置,注意advice引用的就是<tx>标签配置的事务,pointcut是切入的方法。这种配置经常使用。查看全部
-
3.使用XML配置声明式事物 基于tx/aop 4.基于注解的声明式事务管理方式:配置完事务管理器之后,只需要在配置文件中使用<tx:annotation-driver transactionManager=“transactionManager”>将基于事务注解的方式打开,就可以在service上使用注解方法了,以达到控制事务的目的。此方法虽然简单,但不推荐新手使用。 注意:无论是编程式还是声明式方式,配置事务管理器一定要有。代码如下: <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" ></property> </bean>查看全部
举报
0/150
提交
取消