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

SpringBoot Mybatis如何配置多數(shù)據(jù)源并分包

 更新時間:2020年05月06日 11:01:13   作者:YouLan  
這篇文章主要介紹了SpringBoot Mybatis如何配置多數(shù)據(jù)源并分包,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

看了不少網(wǎng)上關(guān)于多數(shù)據(jù)源的配置,大致可分為兩類,分包方式和通過切面方式;

樣例已上傳至github:https://github.com/dadachao/multids

第一個子項目ds01即時使用分包方式完成多數(shù)據(jù)源配置。

總結(jié)項目中出現(xiàn)的問題和解決辦法:

數(shù)據(jù)庫的連接信息:

連接信息是寫在db.properties文件中的:

#數(shù)據(jù)庫ds1
spring.datasource.ds1.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.ds1.url=jdbc:mysql://localhost:3306/ds1?serverTimezone=UTC
spring.datasource.ds1.username=root
spring.datasource.ds1.password=root
#數(shù)據(jù)庫ds2
spring.datasource.ds2.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.ds2.url=jdbc:mysql://localhost:3306/ds2?serverTimezone=UTC
spring.datasource.ds2.username=root
spring.datasource.ds2.password=root

這些信息將在配置類DbConfig1.java中引用。一開始我是通過使用注解@ImportResource(...)引進(jìn)db.properties文件,但在運行時報了org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允許有內(nèi)容的錯誤;使用這個注解也是我瞎猜的。后是通過使用注解@PropertySource(value = "classpath:/db.properties",encoding = "utf-8")解決問題。

其次是關(guān)于在配置類中使用@ConfigurationProperties注解自動注入連接信息值(value)的問題:spring.datasource.ds1.url=jdbc:mysql://localhost:3306/ds1?serverTimezone=UTC

注意要使用.url而不是.jdbc-url;

指定數(shù)據(jù)連接池類型DataType:

數(shù)據(jù)源類型可以在配置類生成DataSource的方法中指定:

@Bean(name = "ds1DataSource")
  @Primary
  @ConfigurationProperties(prefix = "spring.datasource.ds1")
  public DataSource getDataSource(){
    DataSourceBuilder<?> dataSourceBuilder = DataSourceBuilder.create();
    dataSourceBuilder.type(com.alibaba.druid.pool.DruidDataSource.class);
    return dataSourceBuilder.build();
  }

指定***Mapper.xml文件的路徑掃描問題:(相當(dāng)重要)

使用配置類進(jìn)行數(shù)據(jù)源相關(guān)進(jìn)行配置后,原先在application.yml中配置的相關(guān)參數(shù)就不起作用了(原因未知),原先我是在application.yml中配置了.xml文件的掃描路徑:

mybatis:
mapper-locations: classpath:/mybatis/**/*.xml
type-aliases-package: com.kong.ds01.model

但在運行時報錯:Mapper Bound Error(not found);后來通過在配置類中寫入掃描路徑解決:

public final static String mapperXmlLocation = "classpath:mybatis/*/*.xml";

@Bean(name = "ds1SqlSessionFactory")
  @Primary
  public SqlSessionFactory getSqlSessionFactory(@Qualifier("ds1DataSource") DataSource dataSource) throws Exception {
    SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
    sqlSessionFactoryBean.setDataSource(dataSource);
    sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapperXmlLocation));
    return sqlSessionFactoryBean.getObject();
  }

而且通過這種方法表示任意路徑不能使用/**/,要使用/*/,否則識別不出來又會報相同的錯誤,這點真是太坑了!

指定執(zhí)行器的類型(Execute.Type):

可以通過在配置類中的sqlSessionTemplate中指定:

@Bean(name = "ds1SqlSessionTemplate")
  @Primary
  public SqlSessionTemplate getSqlSessionTemplate(@Qualifier("ds1SqlSessionFactory") SqlSessionFactory sqlSessionFactory){
    return new SqlSessionTemplate(sqlSessionFactory, ExecutorType.BATCH);
  }

指定為BATCH類型后在進(jìn)行批量操作時效率有明顯的提高。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java連接MySQL數(shù)據(jù)庫并實現(xiàn)數(shù)據(jù)交互功能

    Java連接MySQL數(shù)據(jù)庫并實現(xiàn)數(shù)據(jù)交互功能

    在現(xiàn)代應(yīng)用中,數(shù)據(jù)庫是不可或缺的一部分,Java 作為一種廣泛使用的編程語言,提供了豐富的 API 來與各種數(shù)據(jù)庫進(jìn)行交互,本文將詳細(xì)介紹如何在 Java 中連接 MySQL 數(shù)據(jù)庫,并實現(xiàn)基本的數(shù)據(jù)交互功能,需要的朋友可以參考下
    2024-10-10
  • SpringBoot項目中Maven剔除無用Jar引用的最佳實踐

    SpringBoot項目中Maven剔除無用Jar引用的最佳實踐

    在?Spring?Boot?項目開發(fā)中,Maven?是最常用的構(gòu)建工具之一,通過?Maven,我們可以輕松地管理項目所需的依賴,而,隨著項目的復(fù)雜化,無用的?Jar?包引用可能會逐漸增多,本文旨在詳細(xì)解析如何在?Spring?Boot?項目中剔除無用的?Jar?引用,需要的朋友可以參考下
    2025-01-01
  • 使用Spring RestTemplate 詳解實踐使用及拓展增強(qiáng)

    使用Spring RestTemplate 詳解實踐使用及拓展增強(qiáng)

    這篇文章主要介紹了使用Spring RestTemplate 詳解實踐使用及拓展增強(qiáng),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • IDEA編譯報錯:Error:java:無效的源發(fā)行版:17的解決辦法

    IDEA編譯報錯:Error:java:無效的源發(fā)行版:17的解決辦法

    IDEA里面裝了幾個版本的JDK,導(dǎo)入工程后時不時提示一下錯誤,下面這篇文章主要給大家介紹了關(guān)于IDEA編譯報錯:Error:java:無效的源發(fā)行版:17的解決辦法,需要的朋友可以參考下
    2023-01-01
  • java swing中實現(xiàn)拖拽功能示例

    java swing中實現(xiàn)拖拽功能示例

    這篇文章主要介紹了java swing中實現(xiàn)拖拽功能示例,需要的朋友可以參考下
    2014-04-04
  • SpringMVC實現(xiàn)文件上傳下載的全過程

    SpringMVC實現(xiàn)文件上傳下載的全過程

    對于上傳功能,我們在項目中是經(jīng)常會用到的,比如用戶注冊的時候,上傳用戶頭像,這個時候就會使用到上傳的功能,而對于下載使用場景也很常見,下面這篇文章主要給大家介紹了關(guān)于SpringMVC實現(xiàn)文件上傳下載的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • Java基礎(chǔ)泛型詳情

    Java基礎(chǔ)泛型詳情

    這篇文章主要介紹了Java基礎(chǔ)泛型詳情,泛型是JDK5中引入的特性,它提供了編譯時類型安全檢測機(jī)制,該機(jī)制允許在編譯時檢測到非法的類型,下面文章的詳細(xì)介紹,需要的朋友可以參考一下
    2022-04-04
  • Jackson庫進(jìn)行JSON?序列化時遇到了無限遞歸(Infinite?Recursion)的問題及解決方案

    Jackson庫進(jìn)行JSON?序列化時遇到了無限遞歸(Infinite?Recursion)的問題及解決方案

    使用Jackson庫進(jìn)行JSON序列化時遇到了無限遞歸(Infinite?Recursion)問題,這是因為兩個實體類ComPointQuotaEntity和?ComPointEntity之間存在雙向關(guān)聯(lián)point和pointQuota相互引用,本文給大家介紹解決方案,感興趣的朋友一起看看吧
    2025-03-03
  • MybatisPlus將自定義的sql列表查詢返回改為分頁查詢

    MybatisPlus將自定義的sql列表查詢返回改為分頁查詢

    本文主要介紹了MybatisPlus將自定義的sql列表查詢返回改為分頁查詢,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • MyBatis基礎(chǔ)支持DataSource實現(xiàn)源碼解析

    MyBatis基礎(chǔ)支持DataSource實現(xiàn)源碼解析

    這篇文章主要為大家介紹了MyBatis基礎(chǔ)支持DataSource實現(xiàn)源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02

最新評論

余江县| 浮梁县| 临沧市| 敦煌市| 焦作市| 洛浦县| 南充市| 张家界市| 珠海市| 浦东新区| 民勤县| 梨树县| 毕节市| 绥江县| 融水| 莲花县| 南溪县| 岳阳市| 金川县| 赞皇县| 乾安县| 开鲁县| 朝阳市| 财经| 修水县| 明光市| 肥乡县| 喀喇沁旗| 滦平县| 清水县| 城口县| 长春市| 牟定县| 奉新县| 恩施市| 修文县| 青阳县| 广丰县| 邛崃市| 泸西县| 石嘴山市|