返回顶部
首页 > 资讯 > 数据库 >SpringBoot3+最新MybatisPlus+Mysql与TDengine双数据源
  • 905
分享到

SpringBoot3+最新MybatisPlus+Mysql与TDengine双数据源

摘要

前言        昨天写的idea+apifox uploader插件+apifox新年第一天上班就上榜了,真是不错。今天来补一篇,本来应该是在前一篇之前发的。实际上就是最新的SpringBoot集成最新的mybatisPlus,加双数据

前言

       昨天写的idea+apifox uploader插件+apifox新年第一天上班就上榜了,真是不错。今天来补一篇,本来应该是在前一篇之前发的。实际上就是最新的SpringBoot集成最新的mybatisPlus,加双数据源:Mysql、TDengine,一个关系型数据库,一个时序数据库。文末有独家demo的git地址。
       springBoot3集成的哦,其他依赖也都是最新版本,独家的哦。好了,不废话,直接上重点。


一、新建最新springBoot3项目

       这个没有啥好说的,就是选择spring项目了,下一步下一步,直接看引入的包吧。
pom.xml

    4.0.0            org.springframework.boot        spring-boot-starter-parent        3.0.1                 com.xiaotian    data-trans    0.0.1-SNAPSHOT    data-trans    data-trans            17        UTF-8        17        17        1.4.3        true                            org.springframework.boot            spring-boot-starter-WEB                                                org.springframework.boot                    spring-boot-starter-Tomcat                                                                org.springframework.boot            spring-boot-starter-undertow            3.0.1                            org.springframework.boot            spring-boot-starter-data-jdbc                            org.mybatis.spring.boot            mybatis-spring-boot-starter            3.0.1                            com.baomidou            mybatis-plus-boot-starter            3.5.3.1                            com.baomidou            mybatis-plus            3.5.3.1                            com.baomidou            mybatis-plus-extension            3.5.3.1                            com.taosdata.jdbc            taos-jdbcdriver            3.0.3                            mysql            mysql-connector-java            8.0.30                                    com.baomidou            dynamic-datasource-spring-boot-starter            3.3.6                                    org.springframework.boot            spring-boot-starter-data-Redis            2.7.5                                    org.apache.commons            commons-pool2                                    com.yomahub            tlog-all-spring-boot-starter            ${tlog.version}                            com.baomidou            mybatis-plus-generator            3.5.3.1                            org.apache.velocity            velocity-engine-core            2.3                            org.projectlombok            lombok            true            provided                            org.springframework.boot            spring-boot-starter-actuator                            org.springframework.boot            spring-boot-starter-test            test                                                org.junit.vintage                    junit-vintage-engine                                                        junit            junit                                                    org.springframework.boot                spring-boot-Maven-plugin                3.0.1                                                            org.projectlomboklombok                                                                                    

项目结构:
在这里插入图片描述

二、关键代码

1.多数据源配置

application.yml

#容器配置server:  port: 8199  servlet:    context-path: /datatrans  shutdown: graceful#spring基础配置spring:  application:    name: dataTrans  freemarker:    check-template-location: false    cache: false  global:    date-fORMat: yyyy-MM-dd HH:mm:ss  mvc:    throw-exception-if-no-handler-found: true    static-path-pattern: actuator@Configuration@MapperScan(basePackages = {"com.xiaotian.datatrans.mapper.mysql"}, sqlSessionTemplateRef  = "mysqlSqlSessionTemplate")public class MysqlServerConfig {    @Autowired    private PaginationInnerInterceptor paginationInnerInterceptor;    private static final String MAPPER_LOCATION = "classpath:mapper/tdengine@Configuration@MapperScan(basePackages = "com.xiaotian.datatrans.mapper.tdengine", sqlSessionTemplateRef = "tdengineSqlSessionTemplate")public class TDengineServerConfig {    @Autowired    private PaginationInnerInterceptor paginationInnerInterceptor;    private static final String MAPPER_LOCATION = "classpath:mapper/tdengine@DS("tdengine-service")  //指定数据源注解,名称与配置数据源名称一致public interface StudentMapper extends BaseMapper {        int insertStudent(Student record);        IPage selectStudentPage(Page page,@Param("student") Student custoMQueryParams);}

3.核心注意点

先看启动类:

package com.xiaotian.datatrans;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.autoconfigure.domain.EntityScan;@EntityScan("com.xiaotian")@SpringBootApplicationpublic class DataTransApplication {    public static void main(String[] args) {        SpringApplication.run(DataTransApplication.class, args);        System.out.println("--数据精灵启动成功--");    }}

1、Mapper扫描问题:
       细心的小伙伴可能知道,一般springboot的,要么在配置里配置mapper的包路径,要么在启动类上写注解@MapperScan(“包路径”),如果是多个@MapperScan(basePackages = {“com.xx..mapper","com.xxx..dao”}),但是我这里配置里没有配置,启动类也没有注解,为什么呢?
       原因其实很简单,这些预制的基础配置都是给单数据源用的,如果用多数据源,那么各个mapper就要对应不同的数据源,所以这些mapper扫描,在数据源配置类上设置了。大家可以回头看看我的2个数据源配置类是不是有注解@MapperScan。
2、分页插件问题
       一般单数据源,那么只需要一个分页插件配置类就行,例如我这里的MyBatisPlusConfig.java。
       但是这里因为是多数据源,所以插件的设置需要在数据源上做拦截,大家可以看看我2个数据源里的sessionFactory里的MybatisPlusInterceptor设置。
       另外这里要注意的是最新版本的mybatisPlus已经用PaginationInnerInterceptor拦截器了,原先的PaginationInterceptor已经废除了。


总结

  • mybatisPlus真香,支持的数据源真多
  • mybatisPlus、分页插件支持TDengine不久,TDengine的更新是用insert操作的,只是时间挫是一致的就行,但是mybatisPlus的BaseMapper里的update方法并不会根据数据源使用insert组织sql。
  • mybatisPlus在3.4.2时移除了Rest Api
  • CSDN的gitcode也真香啊
  • 本次案例的整个demo就在我的gitcode里,公开的,git下载以后,改改配置里的数据源ip、账号、密码,建表就可以看到效果了。地址:https://gitcode.net/zwrlj527/data-trans.git
           好了,就到这里,希望可以帮到大家,uping!!!

来源地址:https://blog.csdn.net/zwrlj527/article/details/128785585

您可能感兴趣的文档:

--结束END--

本文标题: SpringBoot3+最新MybatisPlus+Mysql与TDengine双数据源

本文链接: https://lsjlt.com/news/372624.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作