最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Spring整合mybatis--Spring中的事務(wù)管理(xml形式)

 更新時間:2023年11月24日 14:29:11   作者:Kbaor  
這篇文章主要介紹了Spring整合mybatis--Spring中的事務(wù)管理(xml形式),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

形式)

引入依賴

<properties>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.source>1.8</maven.compiler.source>
        <spring.version>5.3.20</spring.version>
        <mysql.version>8.0.31</mysql.version>
        <mybatis.version>3.5.4</mybatis.version>
        <mybatis.spring.version>1.3.2</mybatis.spring.version>
        <lombok.version>1.18.30</lombok.version>
        <commons-dbcp2.version>2.11.0</commons-dbcp2.version>
        <aspectjweaver.version>1.9.7</aspectjweaver.version>
    </properties>
    <dependencies>
        <!--spring基礎(chǔ)依賴-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--spring連接數(shù)據(jù)庫-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--添加mybatis依賴-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
        <!--mybatis與spring整合-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>${mybatis.spring.version}</version>
        </dependency>
        <!--事務(wù)的依賴-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
        </dependency>
        <!--數(shù)據(jù)庫連接池-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-dbcp2</artifactId>
            <version>${commons-dbcp2.version}</version>
        </dependency>
        <!--切面編程框架-->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>${aspectjweaver.version}</version>
        </dependency>
    </dependencies>

引入事務(wù)的命名空間

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd">
</beans>

事務(wù)的相關(guān)配置

<!-- 事務(wù)管理數(shù)據(jù)源的配置-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <!--配置事務(wù)-->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <!--配置事務(wù)的屬性
            1. name: 指定的哪些方式進(jìn)行事務(wù)管理(這些方式指的事service中的方法)
                1.1 * 表示所有的方法都需要進(jìn)行事務(wù)管理
                1.2 save* 表示save開頭的方式需要進(jìn)行事務(wù)管理
            2. propagation: 傳播級別
                2.1 REQUIRED 如果當(dāng)前沒有事務(wù),就新建一個事務(wù),如果已經(jīng)存在一個事務(wù)中,就加入到這個事務(wù)中。這是最常見的選擇。
            3. isolation: 隔離級別
        -->
        <tx:attributes>
            <tx:method name="*" propagation="REQUIRED" isolation="DEFAULT"/>
        </tx:attributes>
    </tx:advice>
    <!--使用AOP編程進(jìn)行事務(wù)的配置-->
    <aop:config>
        <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.bboy.service.impl.*.*(..))"/>
    </aop:config>

application.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd">
    <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/qinmanage"/>
        <property name="username" value="root"/>
        <property name="password" value="127003"/>
     </bean>
    <!-- 事務(wù)管理數(shù)據(jù)源的配置-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <!--配置事務(wù)-->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <!--配置事務(wù)的屬性
            1. name: 指定的哪些方式進(jìn)行事務(wù)管理(這些方式指的事service中的方法)
                1.1 * 表示所有的方法都需要進(jìn)行事務(wù)管理
                1.2 save* 表示save開頭的方式需要進(jìn)行事務(wù)管理
            2. propagation: 傳播級別
                2.1 REQUIRED 如果當(dāng)前沒有事務(wù),就新建一個事務(wù),如果已經(jīng)存在一個事務(wù)中,就加入到這個事務(wù)中。這是最常見的選擇。
            3. isolation: 隔離級別
        -->
        <tx:attributes>
            <tx:method name="*" propagation="REQUIRED" isolation="DEFAULT"/>
        </tx:attributes>
    </tx:advice>
    <!--使用AOP編程進(jìn)行事務(wù)的配置-->
    <aop:config>
        <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.bboy.service.impl.*.*(..))"/>
    </aop:config>
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="typeAliasesPackage" value="com.bboy.pojo"/>
        <property name="mapperLocations" value="mapper/*.xml"/>
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <bean id="accountMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
        <property name="mapperInterface" value="com.bboy.mapper.AccountMapper"/>
        <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
    </bean>
    <bean id="accountService" class="com.bboy.service.impl.AccountServiceImpl">
    <property name="accountMapper" ref="accountMapper"/>
    </bean>
</beans>

AccountMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper  namespace="com.bboy.mapper.AccountMapper">
    <update id="updateId1">
        update t_account set money=money-${money} where id=${id}
    </update>
    <update id="updateId2">
        update t_account set money=money+${money} where id=${id}
    </update>
</mapper>

service

AccountService

package com.bboy.service;
public interface AccountService {
    public int pay(int id_1,int id_2,int money);
}

AccountServiceImpl

package com.bboy.service.impl;
import com.bboy.mapper.AccountMapper;
import com.bboy.service.AccountService;
/**
 * @類描述:
 * @作者:秦帥
 * @時間:2023/11/24 0024 10:48:11
 */
public class AccountServiceImpl implements AccountService {
    private AccountMapper accountMapper;
    public void setAccountMapper(AccountMapper accountMapper) {
        this.accountMapper = accountMapper;
    }
    @Override
    public int pay(int id_1, int id_2, int money) {
        //-:轉(zhuǎn)出 id_1
        accountMapper.updateId1(id_1, money);
        //-停電了
        //  int res = 1/0 ;
        //-:轉(zhuǎn)入 id_2
        accountMapper.updateId2(id_2, money);
        return 0;
    }
}

mapper-(AccountMapper)

package com.bboy.mapper;
import org.apache.ibatis.annotations.Param;
public interface AccountMapper {
    //- 轉(zhuǎn)出
    public int updateId1(@Param("id") int id, @Param("money") int money);
    //- 轉(zhuǎn)入
    public int updateId2(@Param("id") int id,@Param("money") int money);
}

pojo-(Account)

package com.bboy.pojo;
import lombok.Data;
@Data
/**
 * @類描述:
 * @作者:秦帥
 * @時間:2023/11/24 0024 10:45:51
 */
public class Account {
    private int id ;
    private String name ;
    private  int money ;
}

demo

package com.bboy.demo;
import com.bboy.service.AccountService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
 * @類描述:
 * @作者:秦帥
 * @時間:2023/11/24 0024 10:43:19
 */
public class Demo {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        AccountService accountService = (AccountService) context.getBean("accountService");
        accountService.pay(1,2,10000);
    }
}
 

到此這篇關(guān)于Spring整合mybatis--Spring中的事務(wù)管理(xml形式)的文章就介紹到這了,更多相關(guān)Spring整合mybatis--Spring事務(wù)管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot通過注解下載任意對象

    SpringBoot通過注解下載任意對象

    下載功能應(yīng)該是比較常見的功能了,雖然一個項目里面可能出現(xiàn)的不多,但是基本上每個項目都會有,而且有些下載功能其實還是比較繁雜的,這篇文章主要介紹了SpringBoot一個注解就能幫你下載任意對象,需要的朋友可以參考下
    2023-08-08
  • springboot配置文件中敏感數(shù)據(jù)(賬號密碼)加密方式

    springboot配置文件中敏感數(shù)據(jù)(賬號密碼)加密方式

    這篇文章主要介紹了springboot配置文件中敏感數(shù)據(jù)(賬號密碼)加密方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • 阿里云OSS域名配置及簡單上傳的示例代碼

    阿里云OSS域名配置及簡單上傳的示例代碼

    這篇文章主要介紹了阿里云OSS域名配置及簡單上傳的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Java二分算法題目練習(xí)實戰(zhàn)教程

    Java二分算法題目練習(xí)實戰(zhàn)教程

    二分查找(Binary?Search)是一種非常高效的查找算法,它在有序數(shù)組或有序列表中通過反復(fù)將搜索范圍分為兩半來查找目標(biāo)元素,這篇文章主要介紹了Java二分算法題目練習(xí)的相關(guān)資料,需要的朋友可以參考下
    2025-11-11
  • Java項目有中多個線程如何查找死鎖

    Java項目有中多個線程如何查找死鎖

    這篇文章主要介紹了Java項目有中多個線程如何查找死鎖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Java String 字符串常量池解析

    Java String 字符串常量池解析

    這篇文章主要介紹了Java String 字符串常量池解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • java學(xué)習(xí)之JVM運行時常量池理解

    java學(xué)習(xí)之JVM運行時常量池理解

    這篇文章主要介紹了java學(xué)習(xí)之JVM運行時常量池理解,對常量池的好處以及基本類型的包裝類常量池等作了簡要分析,有需要的朋友可以借鑒參考下
    2021-09-09
  • SpringBoot項目微信云托管入門部署實踐

    SpringBoot項目微信云托管入門部署實踐

    本文主要介紹了SpringBoot項目微信云托管入門部署實踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • JVM實戰(zhàn)系列之CPU100%和內(nèi)存100%排查

    JVM實戰(zhàn)系列之CPU100%和內(nèi)存100%排查

    本文主要介紹了JVM實戰(zhàn)系列之CPU100%和內(nèi)存100%排查,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 如何解決SpringBoot2.6及之后版本取消了循環(huán)依賴的支持問題

    如何解決SpringBoot2.6及之后版本取消了循環(huán)依賴的支持問題

    循環(huán)依賴指的是兩個或者多個bean之間相互依賴,形成一個閉環(huán),SpringBoot從2.6.0開始默認(rèn)不允許出現(xiàn)Bean循環(huán)引用,解決方案包括在全局配置文件設(shè)置允許循環(huán)引用存在、在SpringApplicationBuilder添加設(shè)置允許循環(huán)引用、構(gòu)造器注入
    2024-10-10

最新評論

华宁县| 龙川县| 五指山市| 呼玛县| 昔阳县| 建德市| 灵寿县| 建湖县| 鹤岗市| 来凤县| 柳江县| 桐梓县| 那曲县| 喀喇| 榆林市| 延庆县| 绥中县| 佛教| 彰化县| 察雅县| 治县。| 巢湖市| 金门县| 甘孜| 青龙| 铜鼓县| 河北省| 城固县| 陆丰市| 马边| 社旗县| 专栏| 宜章县| 黄大仙区| 沭阳县| 青铜峡市| 大悟县| 抚松县| 泸溪县| 和平区| 桦甸市|