三,搭建环境:事务控制
文章目录
- 三,搭建环境:事务控制
- 声明式事务配置
- 注解写法
- 查询操作
- 增删改操作
声明式事务配置
在 demo-module01-web
的模块下的,spring-persist.xml
配置文件中
开启基于注解的声明式事务支持
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 装配数据源 -->
<property name="dataSource" ref="druidDataSource"/>
</bean>
<!-- 配置事务的注解驱动,开启基于注解的声明式事务功能 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- 开启基于注解的声明式事务支持-->
<!-- 配置事务的注解驱动,开启基于注解的声明式事务功能 -->
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mybatis="http://mybatis.org/schema/mybatis-spring" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- 加载外部配置文件-->
<context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>
<!-- 配置数据源-->
<bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.passwords}"/>
<property name="url" value="${jdbc.url}"/>
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="initialSize" value="${jdbc.initialSize}"/>
<property name="maxActive" value="${jdbc.maxActive}"/>
<property name="maxWait" value="${jdbc.maxWait}"/>
</bean>
<!-- 配置 SqlSessionFactoryBean-->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 指定 Mapper 配置文件的位置 , Set注入 /mapper 下的所有文件-->
<property name="mapperLocations" value="classpath:mapper/*Mapper.xml"></property>
<!-- 装配数据源-->
<property name="dataSource" ref="druidDataSource"></property>
</bean>
<!-- 配置 Mapper 接口的扫描-->
<mybatis:scan base-package="com.rainbowsea.imperial.court.mapper"></mybatis:scan>
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 装配数据源 -->
<property name="dataSource" ref="druidDataSource"/>
</bean>
<!-- 配置事务的注解驱动,开启基于注解的声明式事务功能 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
</beans>
如果报错:注意命名空间上的添加。
注解写法
查询操作
@Transactional(readOnly = true)
增删改操作
@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false)
在具体代码开发中可能会将相同设置的 @Transactional 注解提取到 Service 类上。
对应顺序上一节内容:✏️✏️✏️ 二,SSM 搭建环境:持久化层-CSDN博客
对应顺序是下一节内容:✏️✏️✏️ 四,搭建环境:表述层-CSDN博客