文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-08-17 09:47

关注

前言

       昨天写的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已经废除了。


总结

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯