当前位置: 首页 > news >正文

MyBatis-Plus联表查询(mybatis-plus-join)

一、引入依赖

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version>
</dependency><dependency><groupId>com.github.yulichang</groupId><artifactId>mybatis-plus-join</artifactId><version>1.2.4</version>
</dependency>

这里建议使用此版本!!!

二、修改yml文件

server:port: 10001spring:application:name: special_work_uploaddatasource:dynamic:primary: masterstrict: false # 是否启用严格模式,默认不启动. 严格模式下未匹配到数据源直接报错, 非严格模式下则使用默认数据源primary所设置的数据源datasource:master:url: jdbc:mysql://localhost:3306/enterprise_psm?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&useSSL=falseusername: # 用户名password: # 密码driver-class-name: com.mysql.cj.jdbc.Driverslave_1:url: jdbc:mysql://localhost:3306/enterprise_authorization?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&useSSL=falseusername: # 用户名password: # 密码driver-class-name: com.mysql.cj.jdbc.Driver
#
#mybatis-plus:
#  configuration:
#    # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

三、修改主启动类

添加@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

四、自定义注解

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@DS("master")
public @interface Master {
}

Slave也同样如此

五、添加Mapper类,指定数据源

@Mapper
@Slave
public interface UserMapper extends MPJBaseMapper<User> {
}

六、添加Service类以及其实现

public interface UserService extends IService<User> {/*** 获取分析人信息* @return*/List<AnalystVO> getAnalystList();
}
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService {@Resourceprivate WorkJsaMapper workJsaMapper;@Overridepublic List<AnalystVO> getAnalystList() {List<AnalystVO> analystVOList = new ArrayList<>();List<Long> analystList = workJsaMapper.selectList(null).stream().map(WorkJsa::getAnalyst).collect(Collectors.toList());this.getBaseMapper().selectBatchIds(analystList).parallelStream().forEach(user -> {AnalystVO analystVO = new AnalystVO();analystVO.setAnalyst(user.getId());analystVO.setUserName(user.getNickName());analystVOList.add(analystVO);});return analystVOList;}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 1.ftp简介
  • C++程序调用SetWindowsHookEx全局拦截键盘按键消息和窗口消息的Hook实例分享
  • 相机掉帧采集速度慢怎么办巨型帧9014
  • [随便学学]在doker服务器中实现ssh免密登陆
  • 力扣经典题目之->相同的树(递归判断两颗二叉树是否相同)
  • SpringBoot 一文复习知识点概览
  • 一个干净的python项目(没连数据库啥的)
  • 华为 2024 届校园招聘-硬件通⽤/单板开发——第一套(部分题目分享,完整版带答案,共十套)
  • 游泳耳机哪个牌子好?四大爆款游泳耳机实测,优缺点秒懂!
  • flutter之image_picker上传图片
  • Memcached:单节点、集群案例;概念、工作原理
  • ubuntu 20.04系统安装pytorch
  • 阿里云发送短信功能(Java)
  • c++特殊类设计(重点单例模式)
  • Mysql客户端连接是报错:1045-Access denied for user
  • JavaScript-如何实现克隆(clone)函数
  • Docker容器管理
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • Fundebug计费标准解释:事件数是如何定义的?
  • Iterator 和 for...of 循环
  • JavaScript异步流程控制的前世今生
  • Protobuf3语言指南
  • Redash本地开发环境搭建
  • vuex 笔记整理
  • 关于Java中分层中遇到的一些问题
  • 深入 Nginx 之配置篇
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 终端用户监控:真实用户监控还是模拟监控?
  • 自定义函数
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • #### golang中【堆】的使用及底层 ####
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #QT(QCharts绘制曲线)
  • $(function(){})与(function($){....})(jQuery)的区别
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (1)STL算法之遍历容器
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (3)选择元素——(17)练习(Exercises)
  • (4)(4.6) Triducer
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (十六)串口UART
  • (推荐)叮当——中文语音对话机器人
  • (一)、python程序--模拟电脑鼠走迷宫
  • (转)c++ std::pair 与 std::make
  • (转载)hibernate缓存
  • .describe() python_Python-Win32com-Excel
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .Net mvc总结
  • .net 设置默认首页
  • .net反编译的九款神器
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验