springboot整合mybatis多資料來源
application.properties
#mysql
[email protected]@
spring.datasource.primary.username= @[email protected]
spring.datasource.primary.password= @[email protected]
spring.datasource.primary.driverClassName= @[email protected]
#sqlserver
[email protected]@
[email protected]@
[email protected] @
[email protected][email protected]
第一個資料來源的配置
package com.eyee.distribution.config; import com.zaxxer.hikari.HikariDataSource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import javax.sql.DataSource; /** * mysql資料來源 *auth */ @Configuration @MapperScan(basePackages = {"com.eyee.distribution.mapper.mysql"},sqlSessionFactoryRef ="primarySqlSessionFactory",sqlSessionTemplateRef ="primarySqlSessionTemplate") public class PrimaryDataSourceConfig { /** * 讀取peropertie注入第一個資料來源,注意這裡如果不設定primary會報錯 * @return */ @Bean(name = "primaryDataSource") @Qualifier("primaryDataSource") @ConfigurationProperties(prefix = "spring.datasource.primary") public DataSource CreatePrimaryDataSource() { //指定使用hikari連線池 return DataSourceBuilder.create().type(HikariDataSource.class).build(); } /** * 將第一個資料來源注入工廠 * @param dataSource * @return * @throws Exception */ @Bean(name="primarySqlSessionFactory") public SqlSessionFactory primarySqlSessionFactory( @Qualifier("primaryDataSource")DataSource dataSource) throws Exception { SqlSessionFactoryBean sqlSessionFactoryBean=new SqlSessionFactoryBean(); //設定資料來源 sqlSessionFactoryBean.setDataSource(dataSource); //掃描xml的路徑地址 // sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:/mybatis/mysql/*Mapper.xml")); sqlSessionFactoryBean.setConfigLocation(new ClassPathResource("pageHelper.xml"));//分頁 return sqlSessionFactoryBean.getObject(); } /** * 配置事務管理器 */ @Bean public DataSourceTransactionManager primaryTransactionManager(@Qualifier("primaryDataSource")DataSource dataSource) throws Exception { return new DataSourceTransactionManager(dataSource); } /** * 查詢使用的模板類注意這裡一定要獨立分開各自的模板類 * @param sqlSessionFactory * @return * @throws Exception */ @Bean("primarySqlSessionTemplate") public SqlSessionTemplate primarySqlSessionTemplate(@Qualifier("primarySqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception { SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory); // 使用上面配置的Factory return template; } }
第二個資料來源
package com.eyee.distribution.config; import com.zaxxer.hikari.HikariDataSource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.core.io.ClassPathResource; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import javax.sql.DataSource; /** * sqlserver資料來源 */ @Configuration @MapperScan(basePackages = {"com.eyee.distribution.mapper.sqlserver"},sqlSessionFactoryRef ="secondarySqlSessionFactory",sqlSessionTemplateRef ="secondarySqlSessionTemplate" ) public class SencondarDatasourceConfig { @Primary @Bean(name = "scondaryDataSource") @Qualifier("scondaryDataSource") @ConfigurationProperties(prefix = "spring.datasource.secondary") public DataSource CreateSecondaryDataSource() { return DataSourceBuilder.create().type(HikariDataSource.class).build(); } @Primary @Bean(name="secondarySqlSessionFactory") public SqlSessionFactory sqlSessionFactory(@Qualifier("scondaryDataSource")DataSource dataSource) throws Exception { SqlSessionFactoryBean sqlSessionFactoryBean=new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource); //sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*/mybatis/sqlserver/*")); sqlSessionFactoryBean.setConfigLocation(new ClassPathResource("pageHelper.xml")); return sqlSessionFactoryBean.getObject(); } /** * 配置事務管理器 */ @Primary @Bean public DataSourceTransactionManager transactionManager(@Qualifier("scondaryDataSource")DataSource dataSource) throws Exception { return new DataSourceTransactionManager(dataSource); } @Primary @Bean("secondarySqlSessionTemplate") public SqlSessionTemplate secondarySqlSessionTemplate(@Qualifier("secondarySqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception { SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory); // 使用上面配置的Factory return template; } }
相關推薦
SpringBoot整合Mybatis多資料來源(Atomikos)
一、 Spring介紹 1.1、SpringBoot簡介 在您第1次接觸和學習Spring框架的時候,是否因為其繁雜的配置而退卻了?在你第n次使用Spring框架的時候,是否覺得一堆反覆黏貼的配置有一些厭煩?那麼您就不妨來試試使用Spring Boot來讓你更易上手,更簡
springboot整合mybatis多資料來源
application.properties #mysql [email protected]@ spring.datasource.primary.username= @[email protected] spring.datasource.prim
SpringBoot整合mybatis多表聯查之數據庫建表
建表 相同字段 將他 必備 關聯 per con 表示 status 1.各關聯表盡量不要使用相同的字段。因為在多表聯查時,如果出現相同的字段,數據庫自動使這些相同字段的值相等。 比如說,訂單表有一個表示訂單狀態的status字段,而它的外鍵關聯的表car有
spring 整合mybatis——多資料來源切換(附帶定時器的配置,儲存過程連線,資料多於50條,分批進行操作)
新建com.millery.utils包在其下新建DataSourceContextHolder類 package com.millery.utils; public class DataSourceContextHolder { private
springboot整合mybaties多資料來源(註解型)
package com.he.config; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.my
springboot+jpa+mybatis 多資料來源支援
package com.ehaoyao.paycenter.job.common.config;/** * ERP資料來源配置類 * * @author PF * Created by dell on 2018-05-04. */ import org.springframework.beans.
SpringBoot 的 MyBatis 多資料來源配置
最近在專案開發中,需要為一個使用 MySQL 資料庫的 SpringBoot 專案,新新增一個 PLSQL 資料庫資料來源,那麼就需要進行 SpringBoot 的多資料來源開發。程式碼很簡單,下面是實現的過程。 ## 環境準備 實驗環境: - JDK 1.8 - SpringBoot 2.4.1 -
springboot整合Mybatis配置多資料來源
springboot配置多資料來源有好幾種方式 1.application.properties配置 ## 埠 server.port=8080 # 資料庫訪問配置 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spri
Springboot整合mybatis實現多資料來源
1:SpringBoot整合mybatis實現多資料來源有兩種方法 1:靜態方式 將每個資料來源都實現一個mybatis的sqlSessionFactory中,但是這種方法,缺點在於:你有幾個資料來源都會有幾個mybatis的配置類;對於資料來源的事務也不是很
springboot 整合 pagehelper + tk-mybatis 多資料來源問題
閒暇之餘,寫點最近的收穫,寫一點心得,便於以後參考方便,另外可以幫助有這樣需求的人少走彎路。 整合多個數據源,很多部落格會提到springboot整合jdbcTemplete為例子,網上有很多,今天主要推薦的是整合 pagehelp
SpringBoot學習筆記(三):SpringBoot整合Mybatis、SpringBoot事務管理、SpringBoot多資料來源
SpringBoot整合Mybatis 第一步我們需要在pom.xml裡面引入mybatis相關的jar包 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artif
springboot整合mybatis的多資料來源解決辦法
最近專案有一個非解決不可的問題,我們的專案中的使用者表是用的自己庫的資料,但是這些資料都是從一個已有庫中遷過來的,所以使用者資訊都是在那個專案裡面維護,自然而然我們專案不提供使用者註冊功能,這就有個問題,如何解決資料遷移的問題,總不能我每次都手動導資料吧,所以我決心寫一個介面把那個庫中的使用者資訊同步我們
springboot整合Mybatis、事務、多資料來源、分散式事務
springboot整合Mybatis、事務、多資料來源 文章目錄 springboot整合Mybatis、事務、多資料來源 一. 整合Mybatis 二. 事務 2.1 回顧事務
【SpringBoot】——SpringBoot 整合mybatis-plus 單資料來源 & 多資料來源,附原始碼
相信大家已經看了不少的教程了,所以在此我不在贅述。。。。。。 遇到的坑,在專案中readme.md 中有描述。具體下載下來配置比較詳細,初始化sql ,單元測試。。。檢視流程即可。 demo非常簡單,下載下來參考 readme.md 修改必要內容即可完成配
SpringBoot整合Mybatis動態多資料來源後,MybatisPlus的IPage失效的問題解決方案
背景 之前做資料抽取的時候,搭了一個mybatis動態資料來源切換的架子。方便他們寫抽取的程式碼。今天同事問我,架子裡面的mybatisplus的IPage失效了是什麼問題。想了一下,應該是寫動態資料來源的時候,我自定義的mybatis的配置覆蓋了已有的配置。於是我讓他先把我寫的配置進行刪除,看是否正常。得到
springboot+mybatis多資料來源配置,AOP註解動態切換資料來源
轉載至:https://blog.csdn.net/xiaosheng_papa/article/details/80218006 親測有效。 注:有些系統中已經配置了單資料來源,現在要轉成多資料來源,可能需要額外的配置。拿我自己當前專案來說: 專案在啟動類中配置了單資料來源:
基於SpirngBoot2.0+ 的 SpringBoot+Mybatis 多資料來源配置
Github 地址:github.com/Snailclimb/…(SpringBoot和其他常用技術的整合,可能是你遇到的講解最詳細的學習案例,力爭新手也能看懂並且能夠在看完之後獨立實踐。基於最新的 SpringBoot2.0+,是你學習SpringBoot 的最佳指南。) ,歡迎各位 Star。
新手也能看懂,基於SpirngBoot2.0+ 的 SpringBoot+Mybatis 多資料來源配置
Github 地址:https://github.com/Snailclimb/springboot-integration-examples(SpringBoot和其他常用技術的整合,可能是你遇到的講解最詳細的學習案例,力爭新手也能看懂並且能夠在看完之後獨立實踐。基於最新的 S
spring boot2.0+shiro+mybatis多資料來源+druid連線池專案整合
關於整合 網上關於springboot2.0和shiro+myabtis整合的案例很少,大神的教程也是用jpa編寫,jpa很方便,但是還有很多人用mybatis,加之剛學習完mybatis多資料來源整合和druid連線池監控配置,所以算是階段性記錄。 專案目
Mybatis(攔截器實現)通用mapper及全ORM實現(五)-- springboot+mybatis多資料來源設定
本篇實際上和mybatisext專案並沒有太大關係了,但在實際專案中脫離不開多個數據源,尤其是主從分離,同樣網上一些資料大同小異而且大部分並不能真正解決問題,所以單獨提出來說一下 假設我們就是要解決一個主從分離,資料來源定義在了application.properties中