欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring?Boot多數(shù)據(jù)源事務@DSTransactional的使用詳解

 更新時間:2023年06月09日 09:34:00   作者:可樂漢堡cola  
本文主要介紹了Spring?Boot多數(shù)據(jù)源事務@DSTransactional的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

項目場景:

Spring Boot集成com.baomidou,引入dynamic-datasource依賴,實現(xiàn)多數(shù)據(jù)源,這里說下事務問題:

1、一個方法中使用同一個數(shù)據(jù)源;

2、一個方法中使用了多個數(shù)據(jù)源;

解決方案: 

這里把dao、service列出來

1、dao層

package com.test.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
//數(shù)據(jù)源1
@DS("db1")
@Mapper
public interface Test1Dao {
    @Update("update test1 set name = #{name} where id = #{id}")
    void updateById(@Param("id")Integer id, @Param("name")String name);
}
package com.test.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.test.datasources.DataSourceNames;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
//數(shù)據(jù)源2
@DS(“db2”)
@Mapper
public interface Test2Dao {
    @Update("update test2 set name = #{name} where id = #{id}")
    void updateById(@Param("id")Integer id, @Param("name")String name);
}

2、service層 

package com.test.service;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.test.mapper.Test1Dao;
import com.test.mapper.Test2Dao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
public class TestService {
    @Autowired
    private Test1Dao test1Dao;
    @Autowired
    private Test2Dao test2Dao;
    /**
     * 同一個數(shù)據(jù)源中的事務,都是數(shù)據(jù)源2
     * 這里用的是spring的事務注解Transactional
     * 這里必須加上注解多數(shù)據(jù)源注解@DS("db2"),否則使用的是默認數(shù)據(jù)源
     */
    @DS("db2")
    @Transactional
    public void theSame() {
        test2Dao.updateById(2,"第一次修改");
        test2Dao.updateById(2,"第二次修改");
        //這里報錯回滾
        int i = 1/0;
    }
    /**
     * 多數(shù)據(jù)源中的事務,同時使用數(shù)據(jù)源1、2
     * 如果這里用spring的事務注解Transactional,那么使用的是默認數(shù)據(jù)源
     * 這里不需要加上注解@DS
     */
    @DSTransactional
    public void notAlike() {
        test1Dao.updateById(1,"第一次修改");
        test2Dao.updateById(2,"第二次修改");
        //這里報錯回滾
        int i = 1/0;
    }
}

到此這篇關于Spring Boot多數(shù)據(jù)源事務@DSTransactional的使用詳解的文章就介紹到這了,更多相關SpringBoot @DSTransactional內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java過濾器Filter詳解

    Java過濾器Filter詳解

    這篇文章主要介紹了java過濾器中Filter,發(fā)送請求時,如果有不符合的信息將會被filter進行攔截,如果符合則會進行放行。如果感興趣可以來學習一下
    2021-08-08
  • 如何在 Spring Boot 中配置和使用 CSRF 保護

    如何在 Spring Boot 中配置和使用 CSRF 保護

    CSRF是一種網絡攻擊,它利用已認證用戶的身份來執(zhí)行未經用戶同意的操作,Spring Boot 提供了內置的 CSRF 保護機制,可以幫助您防止這種類型的攻擊,這篇文章主要介紹了Spring?Boot?中的?CSRF?保護配置的使用方法,需要的朋友可以參考下
    2023-09-09
  • Java并發(fā)編程之volatile變量介紹

    Java并發(fā)編程之volatile變量介紹

    這篇文章主要介紹了Java并發(fā)編程之volatile變量介紹,volatile提供了弱同步機制,用來確保將變量更新通知到其它線程,需要的朋友可以參考下
    2015-04-04
  • SpringBoot自動配置原理詳解

    SpringBoot自動配置原理詳解

    SpringBoot的誕生就是為了簡化Spring中繁瑣的XML配置,其本質依然還是Spring框架,使用SpringBoot之后可以不使用任何XML配置來啟動一個服務,使得我們在使用微服務架構時可以更加快速的建立一個應用。本文將為具體介紹一下SpringBoot的原理,需要的可以參考一下
    2021-12-12
  • SpringBoot?Http遠程調用的方法

    SpringBoot?Http遠程調用的方法

    這篇文章主要為大家詳細介紹了SpringBoot?Http遠程調用的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Springboot @Validated和@Valid的區(qū)別及使用詳解

    Springboot @Validated和@Valid的區(qū)別及使用詳解

    這篇文章主要介紹了Springboot @Validated和@Valid的區(qū)別及使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • Java實現(xiàn)導入導出Excel文件的方法(poi,jxl)

    Java實現(xiàn)導入導出Excel文件的方法(poi,jxl)

    這篇文章主要介紹了Java實現(xiàn)導入導出Excel文件的方法(poi,jxl),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Java8默認方法Default Methods原理及實例詳解

    Java8默認方法Default Methods原理及實例詳解

    這篇文章主要介紹了Java8默認方法Default Methods原理及實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • SpringBoot接收參數(shù)所有方式總結

    SpringBoot接收參數(shù)所有方式總結

    這篇文章主要介紹了SpringBoot接收參數(shù)所有方式總結,文中通過代碼示例和圖文結合的方式給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • 詳解設計模式在Spring中的應用(9種)

    詳解設計模式在Spring中的應用(9種)

    這篇文章主要介紹了詳解設計模式在Spring中的應用(9種),詳細的介紹了這9種模式在項目中的應用,具有一定的參考價值,感興趣的可以了解一下
    2019-04-04

最新評論