首页 > 其他分享 >mybatis-plus使用连表查询分页

mybatis-plus使用连表查询分页

时间:2023-12-12 10:34:29浏览次数:29  
标签:param inPageResponse 连表 plus mybatis operateid 查询

  • mybatis-plus在进行单表查询时确实很方便,但是一旦我们需要连表查询时,就不得不引用其他插件来进行操作。但是复杂的查询必然会造成我们的代码量往上涨。
    当然mybatis-plus也不会脱离mybatis原本的特性,比如xml文件来操作数据库。本篇文章记录一下使用mybatis-plus来进行连表查询分页功能。
    接口:
    /**
     * TODO: 分页查询操作
     * @param param
     * @return
     * @throws Exception
     */
    InPageResponse getInpageJobOperation(JobTmpOperateInpageParam param) throws Exception;

实现类:

    @Override
    public InPageResponse getInPagejobTmpForms(JobTmpFormInpageParam param) throws Exception {
        Page<JobFormsVo> page = new Page<>(param.getCurpage(), param.getPagesize());
        QueryWrapper<JobFormsVo> wrapper = new QueryWrapper<>();
        IPage<JobFormsVo> jobFormsVos = this.jobTmpFormMp.getInPagejobTmpForms(param,page,wrapper);
        InPageResponse inPageResponse = new InPageResponse();
        inPageResponse.setItems(jobFormsVos.getRecords());
        inPageResponse.setCount(jobFormsVos.getTotal());
        inPageResponse.setPages(jobFormsVos.getPages());
        return inPageResponse;
    }

mapper:

    /**
     * Author: Eureka
     * Date: 2023/12/5
     * TODO:
     */
    public interface JobTmpFormMp extends BaseMapper<JobTmpForm> {
        IPage<JobFormsVo> getInPagejobTmpForms(@Param("param") JobTmpFormInpageParam param, @Param("page") Page<JobFormsVo> page, @Param(Constants.WRAPPER) 
        QueryWrapper<JobFormsVo> wrapper) throws Exception;
    }

xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.console.flow.mapper.mp.JobOperationMp">
    <resultMap id="JobOperationVo" type="com.console.flow.classes.job.vo.JobOperationVo">
        <id property="operateid" column="operateid"/>
        <result property="name" column="name"/>
        <result property="joname" column="joname"/>
        <result property="selected" column="selected"/>
    </resultMap>
    <select id="getInpageJobOperation" parameterType="map" resultMap="JobOperationVo">
        select a.operateid,
           a.name,
           b.joname,
           ifnull(b.selected,'A003002')  as selected
        from gz_operation a
        left join(
           select b.name as joname,
              b.operateid,
              'A003001' as selected
           from gz_jobtmp_operation b
           where b.jobtmpid=#{param.jobtmpid}
        ) b on b.operateid = a.operateid
        order by a.operateid
        ${ew.customSqlSegment}
    </select>
</mapper>

如上就是在我们的原始查询sql最下面加上${ew.customSqlSegment}就可以实现如单表查询的丝滑操作了。

标签:param,inPageResponse,连表,plus,mybatis,operateid,查询
From: https://www.cnblogs.com/jingwei129/p/17896223.html

相关文章

  • elementplus的日期时间限制只能选择当前时间以后的(限制到时分秒)
    conststate=reactive({value:'',lastDate:'2023-10-2712:20:30'})//限制日期constdisabledDateFn=(date)=>{if(date.getTime()<newDate(state.lastDate).getTime()-8.64e7){returntrue;}returnfalse;};//限制小时constdis......
  • 软件测试/人工智能|Java Edit Plus 安装与配置指南
    前言最近我这个一直使用Python的人,开始尝试学习了一下Java,我的朋友跟我说,别像Python那样,开始就使用一个功能强大的IDE,Java语法更为复杂,可以先使用一个轻量化的编辑器,我开始准备使用notepad++,我朋友跟我推荐了EditPlus,我使用之后,就真香了,本文就给大家介绍一下EditPlus的安装和配置。......
  • 软件测试/人工智能|Java Edit Plus 安装与配置指南
    前言最近我这个一直使用Python的人,开始尝试学习了一下Java,我的朋友跟我说,别像Python那样,开始就使用一个功能强大的IDE,Java语法更为复杂,可以先使用一个轻量化的编辑器,我开始准备使用notepad++,我朋友跟我推荐了EditPlus,我使用之后,就真香了,本文就给大家介绍一下EditPlus的安装和配......
  • 【uview2.x/uview-plus3.x/uv-ui框架】修改主题颜色
    前言:在使用uview-plus和uv-ui时发现文档有时候挺乱的,看的挺累,这不,最近折腾个自定义主题,发现和文档所说的压根不对,以下是文档: 1.按照官方说法,一堆报错,这里就不列举了,接下来看看正规做法: 2.找到对应的主题包,就是官方让你在uni.scss中引入的那个,复制一份到公共目录下(视情况而......
  • 一文浅入Springboot+mybatis-plus+actuator+Prometheus+Grafana+Swagger2.9.2开发运维
    Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTFUL风格的Web服务,是非常流行的API表达工具。Swagger能够自动生成完善的RESTFULAP文档,,同时并根据后台代码的修改同步更新,同时提供完整的测试页面来调试API。Prometheus是一个开源的服务监控系统和时序数据库......
  • MyBatis-Plus 自定义 TypeHandler 映射JSON类型为List
    1在mysql5.7支持json类型,那么在表实体是怎么运用的在mybatis-plus中有相关的handler/***Jackson实现JSON字段类型处理器**@authorhubin*@since2019-08-25*/@Slf4j@MappedTypes({Object.class})@MappedJdbcTypes(JdbcType.VARCHAR)publicclassJackso......
  • spring 整合 mybatis 遇到问题
    写在前面:本文章用于记录博主平时遇到的问题,步骤略粗糙,目的在于记录一边后续博主自己查找,如果能帮助到其他人更好。文章中用到的链接均为自行引入,侵删,谢谢(2I2Rc*@JY8)1、报错:Exceptioninthread"main"java.lang.IllegalArgumentException:Invalidvaluetypeforattribute'f......
  • mybatis执行时原理的简单分析
    前置知识:mybatis中配置文件的解析自定义实现类的方式动态代理生成代理类的方式mybatis中配置文件的解析解析xml文件的技术有很多,我们不需要全部去掌握,但是我们要知道我们的xml文件通过解析可以得到什么可以发现通过我们解析得到的这2个信息就可以实现我们jdbc的操作了。我......
  • Spring Boot 3 集成 MyBatis详解
    MyBatis是一款开源的持久层框架,它极大地简化了与数据库的交互流程。与类似Hibernate的ORM框架不同,MyBatis更具灵活性,允许开发者直接使用SQL语句与数据库进行交互。SpringBoot和MyBatis分别是两个功能强大的框架,它们的协同使用可以极大地简化数据访问层的开发,提高整体的开发效率。......
  • mybatis-plus
    查询:LambdaQueryWrapper<HarmBehavorInfo>wrapper=newLambdaQueryWrapper<>();wrapper.eq(HarmBehavorInfo::getOnlyId,dictId);wrapper.eq(HarmBehavorInfo::getDeleteFlag,0);HarmBehavorInfoharmBehavorInfo=har......