成都网站建设设计

将想法与焦点和您一起共享

springboot中怎么利用mybatis-plus配置多数据源

这期内容当中小编将会给大家带来有关springboot中怎么利用mybatis-plus 配置多数据源,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

创新互联公司是专业的大丰网站建设公司,大丰接单;提供成都做网站、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行大丰网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

1.创建一个空的springboot项目

2.配置pom.xml配置文件,只修改dependencies里面的内容,可以直接替换

            org.springframework.boot        spring-boot-starter                org.apache.httpcomponents        httpclient                cn.hutool        hutool-all        5.2.0                com.alibaba        fastjson        1.2.9                org.projectlombok        lombok        true                    com.baomidou        mybatis-plus-boot-starter        3.4.1                    com.baomidou        dynamic-datasource-spring-boot-starter        3.2.0                    mysql        mysql-connector-java        runtime    

3.配置数据源

spring:  datasource:dynamic:      primary: master  #指定默认数据库,下面可以配置多个数据库,不仅仅是两个,master就是其中一个数据库的名字,名字对应就可以,自己随便取      datasource:master:          driver-class-name: com.mysql.cj.jdbc.Driver          url: jdbc:mysql://数据库1ip地址:数据库1端口/数据库1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true          username: 数据库1用户          password: 数据库1密码slave:          driver-class-name: com.mysql.cj.jdbc.Driver          url: jdbc:mysql://数据库2ip地址:数据库2端口/数据库2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true          username: 数据库2用户          password: 数据库2密码

4.新建对应

entity, mapper, service,impl

如果需要调用不用的数据库源,只需要再impl里面使用注释@DS("数据库名称")即可

springboot中怎么利用mybatis-plus 配置多数据源

5.编写定时器调用数据查询,也可以在控制器中调用数据查询,查询方式是一样的

package com.xyz.dsjy.task;import com.xyz.dsjy.entity.Enterprise;import com.xyz.dsjy.entity.FjflCredit;import com.xyz.dsjy.service.EnterpriseService;import com.xyz.dsjy.service.FjflCreditService;import lombok.AllArgsConstructor;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.annotation.EnableScheduling;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component;import java.time.LocalDateTime;@AllArgsConstructor@Component@Configuration      //1.主要用于标记配置类,兼备Component的效果。@EnableScheduling   // 2.开启定时任务public class MultithreadScheduleTask {public final FjflCreditService fjflCrediservice;    public final EnterpriseService enterpriseService;    @Scheduled(fixedRate=5000)private void configureTasks() {
        FjflCredit fs = fjflCrediService.getById(1);        System.out.println(fs);        System.err.println("执行静态定时任务时间: " + LocalDateTime.now());    }@Scheduled(fixedRate=6000)private void configureTasks2() {
        Enterprise et = enterpriseService.getById(80);        System.out.println(et);        System.err.println("执行静态定时任务时间2222: " + LocalDateTime.now());    }
}

6.修改启动类  @MapperScan("com.xyz.dsjy.mapper")  添加mapper扫描

package com.xyz.dsjy;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@MapperScan("com.xyz.dsjy.mapper")  //添加启动扫mapper包下的mapper类public class DsjyApplication {public static void main(String[] args) {
        SpringApplication.run(DsjyApplication.class, args);    }

}

7.启动项目,正确输出我们需要的结果

springboot中怎么利用mybatis-plus 配置多数据源

遇到的坑:

坑1:

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver clas

因为pom.xml引入了druid和dynamic,而我们使用的是dynamic,所以只需要删除druid引入即可。

坑2:
2021-04-08 15:52:53.242  INFO 20108 --- [           main] com.zaxxer.hikari.HikariDataSource       : master - Starting...
2021-04-08 15:52:54.125  INFO 20108 --- [           main] com.zaxxer.hikari.HikariDataSource       : master - Start completed.
2021-04-08 15:52:54.126  INFO 20108 --- [           main] com.zaxxer.hikari.HikariDataSource       : slave - Starting...
2021-04-08 15:52:54.942  INFO 20108 --- [           main] com.zaxxer.hikari.HikariDataSource       : slave - Start completed.
2021-04-08 15:52:54.942  INFO 20108 --- [           main] c.b.d.d.DynamicRoutingDataSource         : dynamic-datasource - load a datasource named [slave] success
2021-04-08 15:52:54.943  INFO 20108 --- [           main] c.b.d.d.DynamicRoutingDataSource         : dynamic-datasource - load a datasource named [master] success
2021-04-08 15:52:54.943  INFO 20108 --- [           main] c.b.d.d.DynamicRoutingDataSource         : dynamic-datasource initial loaded [2] datasource,primary 

........
2021-04-08 15:52:54.989  INFO 20108 --- [           main] com.zaxxer.hikari.HikariDataSource       : slave - Shutdown initiated...
2021-04-08 15:52:54.996  INFO 20108 --- [           main] com.zaxxer.hikari.HikariDataSource       : slave - Shutdown completed.
2021-04-08 15:52:54.996  INFO 20108 --- [           main] com.zaxxer.hikari.HikariDataSource       : master - Shutdown initiated...
2021-04-08 15:52:55.164  INFO 20108 --- [           main] com.zaxxer.hikari.HikariDataSource       : master - Shutdown completed.
2021-04-08 15:52:55.165  INFO 20108 --- [           main] c.b.d.d.DynamicRoutingDataSource         : dynamic-datasource all closed success,bye

可以看到启动过程中我们配置的多数据库源Start completed.之后遇到异常之后又被shutdown了。
因为引入了多个Mybatis 的jar包引起的,检查bom.xml文件是否引入了mybatis和mybatis-plus两个依赖,如果是去掉mybatis即可。

上述就是小编为大家分享的springboot中怎么利用mybatis-plus 配置多数据源了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。


本文标题:springboot中怎么利用mybatis-plus配置多数据源
分享地址:http://chengdu.cdxwcx.cn/article/psphch.html