-
事务传播行为(七种)查看全部
-
TransactionDefinition 事务的隔离级别查看全部
-
事务管理器PlatformTransactionManager接口下面的相关实现类查看全部
-
spring事务管理接口查看全部
-
事务的 ACID 事务具有四个特征:原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持续性( Durability ) 原子性、一致性、隔离性、持久性。 原子性 事务是不可分割的工作单位,事务中的操作要么都发生,要么都不发生. 一致性 事务前后数据的完整性必须保持一致. 隔离性 多用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间数据要相互隔离. 持久性 一个事务一旦被提交,它对数据库中数据的改变就是永久性的,即使数据库发生故障也不应该对其有任何影响.查看全部
-
PlatformTransactionManager事务管理器查看全部
-
在测试方法中,可以使用RunWith的注解和ContextConfiguration的注解实现一些初始化工作 同时使用Resource注入需要测试的Bean @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("../../applicationContext4.xml") public class SpringDemo4 { // 注入代理类 @Resource(name = "accountService") private AccountService accountService; @Test public void demo1() { accountService.transfer("aaa", "bbb", 200d); } }查看全部
-
基于声明式方式3 利用注解的方式 在xml中配置事务管理器,和开启使用事务的注解 <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 开启注解事务 --> <tx:annotation-driven transaction-manager="transactionManager"/> 在对应需要事务管理的业务层上加上注解 @Transactional查看全部
-
基于声明式的方式2 使用aspectj的xml配置方式 在xml文件中配置事务管理器,注入连接池 配置事务的通知,属性设置应用的方法和传播行为等 配置切面,在切面中,配置切入点,和advisor把切入点和通知联系在一起 <!-- 配置事务管理器 --> <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> <tx:method name="transfer" propagation="REQUIRED"/> </tx:attributes> </tx:advice> <!-- 配置切面 --> <aop:config> <!-- 配置切入点 --> <aop:pointcut expression="execution(* com.demo3.AccountService.*(..))" id="pointcut1"/> <!-- 配置切面 --> <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut1"/> </aop:config>查看全部
-
基于声明式的方式1 在xml中配置事务管理器,注入连接池 配置代理,注入目标对象,事务管理器,事务的属性 <!-- 配置事务管理器 --> <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> <!-- 注入事务的属性 --> <property name="transactionAttributes"> <props> <!-- 格式:PROPAGATION:事务的传播行为, ISOLATION:事务的隔离级别, readOnly:只读, -Exception:发生哪些异常回滚事务, +Exception:发生哪些异常不回滚 --> <prop key="transfer">PROPAGATION_REQUIRED</prop> </props> </property> </bean>查看全部
-
基于编程式实现事务 在xml中配置事务管理器,在其中注入连接池 配置事务管理的模版,在其中注入事务管理器 <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 配置事务管理的模版:Spring为了简化事务管理的代码而提供的类 --> <bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate"> <property name="transactionManager" ref="transactionManager"></property> </bean> 在Service层中注入模版之后,使用transactionTemplate.execute()方法,在其中实现一个匿名内部类,这个里面就同属于一个事务 public void transfer(String out, String in, Double money) { transactionTemplate.execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus arg0) { accountDAO.OutMoney(out, money); int i = 1 / 0; accountDAO.InMoney(in, money); } }); }查看全部
-
使用spring提供的模版,进行数据库的操作 在xml中配置连接池 <!-- 配置DAO层类 --> <bean id="accountDAO" class="com.demo1.AccountDAOImpl"> <property name="dataSource" ref="dataSource"></property> </bean> 在类上继承JdbcDaoSupport public void OutMoney(String out, Double money) { String sql = "update account set money = money - ? where name = ?"; this.getJdbcTemplate().update(sql, money, out); }查看全部
-
xml中引入外部文件的配置 c3p0连接池的配置 <!-- 引入外部属性文件 --> <context:property-placeholder location="jdbc.properties"/> <!-- 配置c3p0的连接池 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driverClass}"></property> <property name="jdbcUrl" value="${jdbc.url}"></property> <property name="user" value="${jdbc.username}"></property> <property name="password" value="${jdbc.password}"></property> </bean>查看全部
-
TransactionStatus查看全部
举报
0/150
提交
取消