- 准备
-
- 配置好 Mybatis-Spring环境,编写一个包含增删改查的测试 Mapper
- xml文件编写
-
- 引入事务的 tx 约束
- 引入 Spring 的 AOP 约束
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx https://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd">
-
-
要开启 Spring 的事务处理功能,在 Spring 的配置文件中创建一个
DataSourceTransactionManager
对象<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <constructor-arg ref="dataSource" /> </bean>
-
编写需要使用事务的方法
<!--编写需要使用事务的方法--> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add" propagation="REQUIRED"/> <tx:method name="del" propagation="REQUIRED"/> <tx:method name="update" propagation="REQUIRED"/> <tx:method name="find" read-only="true"/> <tx:method name="*" propagation="REQUIRED"/> </tx:attributes> </tx:advice>
-
织入到 spring aop 中
<!--织入 spring aop--> <aop:config> <aop:pointcut id="txPointCut" expression="execution(* com.hukanmasheng.mapper.*.*(..))"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/> </aop:config>
-
- 编写测试类,这里需要注意:测试方法中 getBean 返回的对象应该是接口而不是实现类
@Test public void test() { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); DepartmentMapper departmentMapper = (DepartmentMapper)context.getBean("departmentMapper"); //增 Department department = new Department(3, "后勤部"); departmentMapper.addDep(department); //删 departmentMapper.delDep(4); List<Department> all = departmentMapper.findAll(); for (Department item : all) { System.out.println(item); } }
Mybatis-Spring 事务
最新推荐文章于 2022-05-22 02:28:40 发布