三,搭建環境:事務控制
@
目錄
- 三,搭建環境:事務控制
- 宣告式事務配置
- 註解寫法
- 查詢操作
- 增刪改操作
宣告式事務配置
在 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部落格
對應順序是下一節內容:✏️✏️✏️