SpringBoot2x整合Mybatis(多数据源)现在基本上都有各大项目必须的配置,一个项目需要多个数据源进行操作多个数据库,下面以三数据源为例,如果有更多数据源直接照着弄即可。

1、pom依赖

        <!-- Mysql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- Oracle 配置--><dependency><groupId>cn.easyproject</groupId><artifactId>ojdbc6</artifactId><version>12.1.0.2.0</version></dependency><!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.0</version></dependency>

2、xml配置

# Spring配置
spring:# 数据源配置datasource:druid:#连接池的配置信息type: com.alibaba.druid.pool.DruidDataSource# 主数据源master:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://xxx.xxx.xxx.xxx:3306/xxxx?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8username: xxxxpassword: xxxx# 次级数据源secondary:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://xxx.xxx.xxx.xxx:8306/xxxx?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8username: xxxxpassword: xxxx# 再次数据源third:driver-class-name: oracle.jdbc.OracleDriverurl: jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521/xxxxusername: xxxxpassword: xxxx# 初始连接数initialSize: 5# 最小连接池数量minIdle: 10# 最大连接池数量maxActive: 20# 配置获取连接等待超时的时间maxWait: 60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒timeBetweenEvictionRunsMillis: 60000# 配置一个连接在池中最小生存的时间,单位是毫秒minEvictableIdleTimeMillis: 300000# 配置一个连接在池中最大生存的时间,单位是毫秒maxEvictableIdleTimeMillis: 900000# 配置检测连接是否有效validationQuery: SELECT 1 FROM DUAL

3、项目结构

4、数据源配置包结构

5、三个数据源配置类(只展示一个,另外两个同理)

@Configuration
@MapperScan(basePackages = MasterDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "masterSqlSessionFactory")
public class MasterDataSourceConfig {static final String PACKAGE = "com.xxx.xxx.mapper.master";static final String MAPPER_LOCATION = "classpath:mapper/master/**.xml";@Value("${spring.datasource.druid.master.url}")private String url;@Value("${spring.datasource.druid.master.username}")private String user;@Value("${spring.datasource.druid.master.password}")private String password;@Value("${spring.datasource.druid.master.driver-class-name}")private String driverClass;@Bean(name = "masterDataSource")@Primarypublic DataSource masterDataSource() throws SQLException {DruidDataSource dataSource = new DruidDataSource();dataSource.setDriverClassName(driverClass);dataSource.setUrl(url);dataSource.setUsername(user);dataSource.setPassword(password);return dataSource;}@Bean@Primarypublic DataSourceTransactionManager masterTransactionManager(@Qualifier("masterDataSource") DataSource dataSource) {return new DataSourceTransactionManager(dataSource);}@Bean@Primarypublic SqlSessionFactory masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource masterDataSource)throws Exception {final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();sessionFactory.setDataSource(masterDataSource);sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(MasterDataSourceConfig.MAPPER_LOCATION));return sessionFactory.getObject();}}

6、此种数据源配置,主要通过配置数据源的属性,包含配置了Mapper和XML所在的路径,只要在指定的包路径下,走的数据源既是指定的数据源,来实现多数据源配置。

SpringBoot2x整合Mybatis(多数据源)相关推荐

  1. spring 整合 mybatis 中数据源的几种配置方式

    因为spring 整合mybatis的过程中, 有好几种整合方式,尤其是数据源那块,经常看到不一样的配置方式,总感觉有点乱,所以今天有空总结下. 一.采用org.mybatis.spring.mapp ...

  2. Spring Boot2 系列教程(二十二)整合 MyBatis 多数据源

    关于多数据源的配置,前面和大伙介绍过 JdbcTemplate 多数据源配置,那个比较简单,本文来和大伙说说 MyBatis 多数据源的配置. 其实关于多数据源,我的态度还是和之前一样,复杂的就直接上 ...

  3. Spring Boot2 整合 MyBatis 多数据源

    pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

  4. druid 多数据源_Spring Boot2 系列教程(二十二)整合 MyBatis 多数据源

    关于多数据源的配置,前面和大伙介绍过 JdbcTemplate 多数据源配置,那个比较简单,本文来和大伙说说 MyBatis 多数据源的配置. 其实关于多数据源,我的态度还是和之前一样,复杂的就直接上 ...

  5. Springboot整合Mybatis多数据源配置

    话不多说,直接进入正题.源码地址:https://github.com/SuriYesl/template.git 目录 一.数据库配置文件 二.配置类 主数据源配置类: 次数据源配置类: 三.项目结 ...

  6. Play Framework 2.5 整合 MyBatis

    为什么80%的码农都做不了架构师?>>>    因为不想用 Play 官方支持的一些 ORM 框架,笔者开始在网上查询 Play 怎么整合 MyBatis ,但搜出来的结果往往都是 ...

  7. Spring Boot整合Jpa多数据源

    Spring Boot整合Jpa多数据源 本文是Spring Boot整合数据持久化方案的最后一篇,主要和大伙来聊聊Spring Boot整合Jpa多数据源问题.在Spring Boot整合JbdcT ...

  8. mysql动态配置数据源_Spring整合Mybatis实现动态数据源切换教程配置

    一.摘要 这篇文章将介绍Spring整合Mybatis 如何完成SqlSessionFactory的动态切换的.并且会简单的介绍下MyBatis整合Spring中的官方的相关代码. Spring整合M ...

  9. db2 springboot 整合_[SpringBoot]快速配置多数据源(整合MyBatis)

    前言 由于业务需求,需要同时在SpringBoot中配置两套数据源(连接两个数据库),要求能做到service层在调用各数据库表的mapper时能够自动切换数据源,也就是mapper自动访问正确的数据 ...

最新文章

  1. 数据库 - mysql内置功能
  2. Web 设计中的 5 个最具争议性的话题
  3. PS制作高光导航背景
  4. Cocos2d-CCScene所有场景切换特效[转载]
  5. 跳表(skipList)
  6. 南洋股份拟57亿元收购天融信 老牌安全厂商曲线登录资本市场
  7. Couchbase:使用Twitter和Java创建大型数据集
  8. 严格地说来的zhajinhuagame
  9. 解决PowerDesigner中DBMS选项卡为空白
  10. HTML5实践 -- 使用css装饰你的图片画廊
  11. 25 个超棒的 HTML5 JavaScript 游戏引擎开发库
  12. 项目验收的步骤和程序
  13. 使用Word脚注、尾注给论文添加参考文献并将编号修改成[1]的方法
  14. Incapsula免费CDN服务申请
  15. php首字母改大写,php实现字符串首字母转换成大写的方法
  16. 华为od统一考试B卷【最少面试官数】C++ 实现
  17. 2015.7.14(大盘结束红色,中色连坐4T)
  18. 女人身体8大隐私部位长得越丑健康指数越高_113
  19. python处理脱敏问题
  20. c语言中1 3.0,1.4.1 先看Turbo C/C++ 3.0(3)

热门文章

  1. java assertthat_assertThat用法 | 學步園
  2. PrepareStatement用法(附源码解析)
  3. Spyder画图时图像弹窗窗口设置
  4. 离线文档浏览工具Zeal的下载和使用
  5. windows右键菜单大揭密
  6. linux如何自动清buff,释放Linux的buff/cache
  7. 北大C++课后题系列:013: 魔兽世界之一:备战
  8. Gson 实体转Json字符串 --- 报declares multiple JSON fields named XXX解决方法
  9. 各种安装包打包发布工具
  10. unbuntu22.04安装QQ音乐并解决无法打开问题