SpringBoot2x整合Mybatis(多数据源)
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(多数据源)相关推荐
- spring 整合 mybatis 中数据源的几种配置方式
因为spring 整合mybatis的过程中, 有好几种整合方式,尤其是数据源那块,经常看到不一样的配置方式,总感觉有点乱,所以今天有空总结下. 一.采用org.mybatis.spring.mapp ...
- Spring Boot2 系列教程(二十二)整合 MyBatis 多数据源
关于多数据源的配置,前面和大伙介绍过 JdbcTemplate 多数据源配置,那个比较简单,本文来和大伙说说 MyBatis 多数据源的配置. 其实关于多数据源,我的态度还是和之前一样,复杂的就直接上 ...
- Spring Boot2 整合 MyBatis 多数据源
pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...
- druid 多数据源_Spring Boot2 系列教程(二十二)整合 MyBatis 多数据源
关于多数据源的配置,前面和大伙介绍过 JdbcTemplate 多数据源配置,那个比较简单,本文来和大伙说说 MyBatis 多数据源的配置. 其实关于多数据源,我的态度还是和之前一样,复杂的就直接上 ...
- Springboot整合Mybatis多数据源配置
话不多说,直接进入正题.源码地址:https://github.com/SuriYesl/template.git 目录 一.数据库配置文件 二.配置类 主数据源配置类: 次数据源配置类: 三.项目结 ...
- Play Framework 2.5 整合 MyBatis
为什么80%的码农都做不了架构师?>>> 因为不想用 Play 官方支持的一些 ORM 框架,笔者开始在网上查询 Play 怎么整合 MyBatis ,但搜出来的结果往往都是 ...
- Spring Boot整合Jpa多数据源
Spring Boot整合Jpa多数据源 本文是Spring Boot整合数据持久化方案的最后一篇,主要和大伙来聊聊Spring Boot整合Jpa多数据源问题.在Spring Boot整合JbdcT ...
- mysql动态配置数据源_Spring整合Mybatis实现动态数据源切换教程配置
一.摘要 这篇文章将介绍Spring整合Mybatis 如何完成SqlSessionFactory的动态切换的.并且会简单的介绍下MyBatis整合Spring中的官方的相关代码. Spring整合M ...
- db2 springboot 整合_[SpringBoot]快速配置多数据源(整合MyBatis)
前言 由于业务需求,需要同时在SpringBoot中配置两套数据源(连接两个数据库),要求能做到service层在调用各数据库表的mapper时能够自动切换数据源,也就是mapper自动访问正确的数据 ...
最新文章
- 数据库 - mysql内置功能
- Web 设计中的 5 个最具争议性的话题
- PS制作高光导航背景
- Cocos2d-CCScene所有场景切换特效[转载]
- 跳表(skipList)
- 南洋股份拟57亿元收购天融信 老牌安全厂商曲线登录资本市场
- Couchbase:使用Twitter和Java创建大型数据集
- 严格地说来的zhajinhuagame
- 解决PowerDesigner中DBMS选项卡为空白
- HTML5实践 -- 使用css装饰你的图片画廊
- 25 个超棒的 HTML5 JavaScript 游戏引擎开发库
- 项目验收的步骤和程序
- 使用Word脚注、尾注给论文添加参考文献并将编号修改成[1]的方法
- Incapsula免费CDN服务申请
- php首字母改大写,php实现字符串首字母转换成大写的方法
- 华为od统一考试B卷【最少面试官数】C++ 实现
- 2015.7.14(大盘结束红色,中色连坐4T)
- 女人身体8大隐私部位长得越丑健康指数越高_113
- python处理脱敏问题
- c语言中1 3.0,1.4.1 先看Turbo C/C++ 3.0(3)
热门文章
- java assertthat_assertThat用法 | 學步園
- PrepareStatement用法(附源码解析)
- Spyder画图时图像弹窗窗口设置
- 离线文档浏览工具Zeal的下载和使用
- windows右键菜单大揭密
- linux如何自动清buff,释放Linux的buff/cache
- 北大C++课后题系列:013: 魔兽世界之一:备战
- Gson 实体转Json字符串 --- 报declares multiple JSON fields named XXX解决方法
- 各种安装包打包发布工具
- unbuntu22.04安装QQ音乐并解决无法打开问题