-
事务的概念:指的是逻辑上的一组操作,这组操作要么全部成功,要么一起失败。 事物的特性: ①原子性:事物是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 ②一致性:指事务前后数据的完整性必须保持一致 ③隔离性:指多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要相互隔离。 ④持久性:一个事务一旦被提交,他对数据库中数据的改变就是永久性的,即使数据库发生故障也不应该对其有任何影响。查看全部
-
在使用编程式事务管理的时 ①配置事务管理器:TranscationManager,一般在不适用Hibernate的情况下,使用DataSourceTranscationManager,需要注入数据源 ②配置事务管理器的管理事务的模板,如果不配置,需要手动编程事务管理的方法,很麻烦,建议使用spring提供的事务模板方法:transcationTemplate,需要注入事务管理器 ③将TranscationTempalte配置好后,注入到使用的事务的service层的类中,作为属性。 ④在service中,执行transcationTemplate提供的execute方法,方法中进行事务的操作,这个方法中有个参数,transcationcallback,如果事务出现回滚,将会调用这个参数进行操作。具体代码看截图:查看全部
-
@Transactional事务的属性查看全部
-
配置事务属性: PROPAGATION:事务的传播行为 ISOLATION:事务的隔离级别 readOnly:只读 -Exception:发生哪些异常回滚事务 +Exception:发生哪些异常事务不会滚查看全部
-
Spring提供了三个主要的API来管理事务. 1. PlatformTransactionManager 平台事务管理器,它是事务的核心接口,主要方法如下: * void commit(TransactionStatus status) 提交事务 * TransactionStatus getTransaction(TransactionDefinition definition) 根据事务定义信息,获得当前状态 * void rollback(TransactionStatus status) 回滚事务 2. TransactionDefinition 事务定义信息: (配置信息来自xml配置文件和注解) 包括事务的隔离级别,事务的传播特性,事务超时时间,事务只读特性. 这个接口中有很多常量: * ISOLATION_xxx 事务隔离级别 * PROPAGATION_xxx 事务传播行为 * int getTimeout() 获得超时信息 * boolean isReadOnly() 判断事务是否只读 3. TransationStatus 事务具体运行状态. * 每一个时刻点事务具体状态信息 4. 三个核心API之间的关系: PlatformTransactionManager 根据 TransactionDefinition 进行事务管理,管理过程中事务存在多种状态,每个状态信息通过 TransactionStatus 表示查看全部
-
事务管理器的类别及应用。查看全部
-
spring事务管理提供的接口。查看全部
-
事务的概念:指的是逻辑上的一组操作,这组操作要么全部成功,要么一起失败。查看全部
-
逻辑上的一组操作,要么全都成功,要么全都失败查看全部
-
Spring基于配置的事务管理3:注解,1.配置事务管理器: <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> 2.打开注解事务: <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> 3.在需要事务的业务层添加注解@Transaction即可查看全部
-
<!-- ==================================3.使用XML配置声明式的事务管理,基于tx/aop=============================================== --> <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </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:config> <!-- 配置切入点 --> <aop:pointcut expression="execution(* com.zs.spring.demo3.AccountService+.*(..))" id="pointcut1"/> <!-- 配置切面 --> <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut1"/> </aop:config>查看全部
-
原始方式测试类中的代码段查看全部
-
使用TransactionProxyFactoryBean声明式事务(原始方式): 声明一个代理类:声明一个事务管理器transactionManager,一个目标类target,以及传播行为等属性设置查看全部
-
配置事务管理器要设置连接池,有了连接池才能获得连接才能获得事务管理查看全部
-
transactionTemplate是spring中简化事务管理的代码提供的类 需要设置属性property将真正进行事务管理的对象transactionManger传入,省略了底层繁琐的代码查看全部
举报
0/150
提交
取消