mysql-plus多数据库_Mybatis plus 配置多数据源

记得面试时候,有面试官会问道,你们多数据源是怎么实现的呀。.......,一阵蒙蔽中,然后说道我们之前项目中,没有用到多数据源。

所幸,目前做得项目中有一个业务逻辑中,用到多个数据库数据情况,多数据源华丽上线。

一. mybatis plus

因为我们项目是springboot+mybatis plus,有些人一看,mybatis还知道对吧,mybatis plus是什么鬼,其实字面意思可以理解,就是对mybatis进行一些功能改造,一些封装升级,然后用起来特别方便。

核心功能的升级主要是以下三点:

支持通用的 CRUD、代码生成器与条件构造器。

通用 CRUD:定义好 Mapper 接口后,只需要继承 BaseMapper 接口即可获得通用的增删改查功能,无需编写任何接口方法与配置文件

条件构造器:通过 EntityWrapper (实体包装类),可以用于拼接 SQL 语句,并且支持排序、分组查询等复杂的 SQL

代码生成器:支持一系列的策略配置与全局配置,比 MyBatis 的代码生成更好用

二.多数据源配置开始

思路:

1、yml中配置多个数据源信息

2、通过AOP切换不同数据源

3、配合mybatis plus使用

1、yml配置

spring:

aop:

proxy-target-class: true

auto: true

datasource:

druid:

db1:

url: jdbc:mysql://localhost:3306/eboot

username: root

password: root

driver-class-name: com.mysql.jdbc.Driver

initialSize: 5

minIdle: 5

maxActive: 20

db2:

url: jdbc:oracle:thin:@192.168.136.222:ORCL

username: sa

password: sa123456

driver-class-name: oracle.jdbc.OracleDriver

initialSize: 5

minIdle: 5

maxActive: 20

2、启动多个数据源

@EnableTransactionManagement //开启事务

@Configuration //spring中常用到注解,与xml配置相对立。是两种加载bean方式

@MapperScan("com.df.openapi.**.mapper.db*") // 扫描mapperdao的地址

public class MybatisPlusConfig {

@Bean

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mybatis-Plus支持多数据源配置,可以通过配置多个数据源来实现在不同的数据库中进行数据操作。具体配置步骤如下: 1. 在application.properties文件中配置多个数据源的连接信息,例如: ``` # 数据源1 spring.datasource.url=jdbc:mysql://localhost:3306/db1?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver # 数据源2 spring.datasource.test2.url=jdbc:mysql://localhost:3306/db2?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.test2.username=root spring.datasource.test2.password=root spring.datasource.test2.driver-class-name=com.mysql.jdbc.Driver ``` 2. 在Mybatis-Plus的配置文件中配置多个SqlSessionFactory,例如: ``` @Configuration public class MybatisPlusConfig { @Bean(name = "test1SqlSessionFactory") public SqlSessionFactory test1SqlSessionFactory(@Qualifier("test1DataSource") DataSource dataSource) throws Exception { MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean(); bean.setDataSource(dataSource); bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/test1/*.xml")); return bean.getObject(); } @Bean(name = "test2SqlSessionFactory") public SqlSessionFactory test2SqlSessionFactory(@Qualifier("test2DataSource") DataSource dataSource) throws Exception { MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean(); bean.setDataSource(dataSource); bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/test2/*.xml")); return bean.getObject(); } } ``` 3. 在Mybatis-Plus的配置文件中配置多个MapperScannerConfigurer,例如: ``` @Configuration public class MybatisPlusConfig { @Bean(name = "test1MapperScannerConfigurer") public MapperScannerConfigurer test1MapperScannerConfigurer() { MapperScannerConfigurer configurer = new MapperScannerConfigurer(); configurer.setBasePackage("com.example.mapper.test1"); configurer.setSqlSessionFactoryBeanName("test1SqlSessionFactory"); return configurer; } @Bean(name = "test2MapperScannerConfigurer") public MapperScannerConfigurer test2MapperScannerConfigurer() { MapperScannerConfigurer configurer = new MapperScannerConfigurer(); configurer.setBasePackage("com.example.mapper.test2"); configurer.setSqlSessionFactoryBeanName("test2SqlSessionFactory"); return configurer; } } ``` 4. 在Mapper接口中使用@Mapper注解指定对应的SqlSessionFactory,例如: ``` @Mapper public interface Test1Mapper { // ... } @Mapper public interface Test2Mapper { // ... } ``` 这样就可以在不同的Mapper接口中使用不同的数据源进行数据操作了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值