三,搭建环境:事务控制

三,搭建环境:事务控制

@


声明式事务配置

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博客

对应顺序是下一节内容:✏️✏️✏️

posted @ 2024-07-31 14:40  Rainbow-Sea  阅读(75)  评论(0编辑  收藏  举报