我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MPJ多表连表查询(包含分页)

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

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MPJ多表连表查询(包含分页)

MPJ是mybatis plus join 的缩写,以前写多表查询时,一般都是写在配置文件,现在mybatis plus join 完全可以解放写xml文件,功能十分强大。
上代码,本文涉及五张表,连表查询从各个表拿出所需字段输出一条记录。
Device表:
在这里插入图片描述
device_category表
在这里插入图片描述
device_image表:
在这里插入图片描述
device_status表:
在这里插入图片描述
producer表:
在这里插入图片描述
项目工程结构:
在这里插入图片描述
1.首先引入MPJ插件

<dependency>            <groupId>com.github.yulichang</groupId>            <artifactId>mybatis-plus-join</artifactId>            <version>1.3.0</version>        </dependency>

配置config

@Configurationpublic class MySqlInjector extends MPJSqlInjector {    @Override    public List<AbstractMethod> getMethodList(Class<?> mapperClass) {        //将原来的保持        List<AbstractMethod> methodList = super.getMethodList(mapperClass);        //多表查询sql注入 从连表插件里移植过来的        methodList.add(new SelectJoinOne());        methodList.add(new SelectJoinList());        methodList.add(new SelectJoinPage());        methodList.add(new SelectJoinMap());        methodList.add(new SelectJoinMaps());        methodList.add(new SelectJoinMapsPage());        return methodList;    }}

mapper包

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
dto:

@Data@Builder@AllArgsConstructor@NoArgsConstructor@Accessors(chain = true)@ApiModel(value = "DeviceInfoDto", description = "")public class DeviceInfoDto implements Serializable {    private static final long serialVersionUID = 1L;        @ApiModelProperty("设备id")    private Long id;        @ApiModelProperty("设备名称")    private String deviceName;        @ApiModelProperty("设备序列号")    private String serialNum;        @ApiModelProperty("设备型号")    private String modelNum;        @ApiModelProperty("类别名称")    private String categoryName;        @ApiModelProperty("设备产商")    private String producer;        @ApiModelProperty("设备状态值")    private String statusValue;        @ApiModelProperty("图片地址")    private String imageUrl;}

主启动:
在这里插入图片描述
测试代码:

 @Test    void testJoin(){        String status = "启动";               IPage<DeviceInfoDto> page = deviceMapper.selectJoinPage(new Page<>(1,3)                ,DeviceInfoDto.class,MPJWrappers.<Device>lambdaJoin().                        select(Device::getId,Device::getDeviceName,Device::getSerialNum,Device::getModelNum).                        select(DeviceCategory::getCategoryName).                        select(Producer::getProducer).                        select(DeviceStatus::getStatusValue).                        select(DeviceImage::getImageUrl).                        leftJoin(DeviceCategory.class,on-> on    .eq(Device::getCategoryId,DeviceCategory::getId))                        .leftJoin(Producer.class,on-> on    .eq(Device::getProducerId,Producer::getId))                        .leftJoin(DeviceStatus.class,on-> on    .eq(Device::getStatusId,DeviceStatus::getId))                        .leftJoin(DeviceImage.class,on->on.    eq(Device::getId,DeviceImage::getDeviceId))                        .eq(Device::getCompanyId,1L)                        .eq(!Objects.isNull(status),DeviceStatus::getStatusValue,status));        page.getRecords().forEach(System.out::println);    }

运行结果:
在这里插入图片描述

来源地址:https://blog.csdn.net/weixin_46649945/article/details/129408368

免责声明:

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

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

MPJ多表连表查询(包含分页)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MPJ多表连表查询(包含分页)

MPJ是mybatis plus join 的缩写,以前写多表查询时,一般都是写在配置文件,现在mybatis plus join 完全可以解放写xml文件,功能十分强大。 上代码,本文涉及五张表,连表查询从各个表拿出所需字段输出一条记录。
2023-08-22

MybatisPlus多表连表查询

最近发现一个好玩的框架,我们知道mybatis-plus在连表查询上是不行的,如果需要连表查询,那么我们就得乖乖的去写xml文件了,但是今天发现一个新的框架 mybatis-plus-join。它既包含了mybatis-plus的所有优点,
2023-08-17

连接查询(多表查询)——MySQL

连接查询(多表查询) 又称多表查询,当查询的字段涉及多个表的时候,就要用到连接查询 分类: 为表起别名: 提高语句的简洁度区分多个重名字段注意:如果为表起了别名,则查询的字段就不能使用原来的别名去限定 内连接 查询A、B 交集部分数据 语
2023-08-18

MybatisPlus多表连接查询

mybatis-plus作为mybatis的增强工具,它的出现极大的简化了开发中的数据库操作,但是长久以来,它的联表查询能力一直被大家所诟病。一旦遇到left join或right join的左右连接,你还是得老老实实的打开xml文件,手写
2023-08-16

mybatis-plus 多表关联条件分页查询

此处以一对多,条件分页查询为例: 一.表结构: 主表 CREATE TABLE `t_user` ( `id` bigint NOT NULL AUTO_INCREMENT, `user_name` varchar(255) DEFAU
2023-08-20

Oracle 查询表的索引包含的字段

字段保留在 dba_ind_columns视图中select a.uniqueness 索引类型,b.index_name 索引名称,b.column_name 字段 from user_indexes a ,user_ind_columns bwhere a
Oracle 查询表的索引包含的字段
2019-06-18

MyBatis-Plus联表查询及分页

MyBatis-Plus联表查询及分页 一、准备工作1、数据库结构以及数据2、依赖3、配置类让mybatis-plus-join在DataScopeSqlInjector中生效4、启动类排除MPJSqlInjector.class
2023-08-16

mybatis-plus多表分页查询最佳实现(简单)

1.简介 在Mybatis Plus 中,虽然IService 接口帮我们定义了很多常用的方法,但这些都是 T 对象有用,如果涉及到 多表的查询,还是需要自定义Vo 对象和自己编写sql 语句,Mybatis Plus提供了一个Page 对
2023-08-23

MySQL数据库:多表连接查询

多表连接查询注意:使用连接技术建议将表经行重命名!# explain 检索连接是否达标# 内连接 # 语法1from 表1 inner join 表2 on 主键字段=外键字段 [where 条件表达式] # 语法2 from 表1,表2 where 主键字段
2022-01-30

MySQL多表查询案例分析

本篇内容介绍了“MySQL多表查询案例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!多表查询案列说明笛卡尔积的理解select id,d
2023-06-29

SpringDataJpa怎么使用union多表分页条件查询

本篇内容介绍了“SpringDataJpa怎么使用union多表分页条件查询”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!如何使用union
2023-06-29

MySQL之多表查询自连接方式

目录一、引言二、实操总结一、引言自连接,顾名思义就是自己连接自己。自连接的语法结构:表 A 别名 A join 表 A 别名 B ON 条件 ...;注意:1、这种语法有一个关键字:join2、自连接查询可以是内连接的语法,可以是外
MySQL之多表查询自连接方式
2024-09-05

编程热搜

目录