首页 > 其他分享 >mybatisplus实现一次多表联查+分页查询

mybatisplus实现一次多表联查+分页查询

时间:2023-11-21 17:35:23浏览次数:27  
标签:queryWrapper mybatisplus QueryWrapper book params IPage 多表 联查 书籍

以书籍整理为例,书籍是一个单独的表,书籍类别是另一个表,通过书籍通过类别的ID可以查询到书籍类别的具体名称,下面分享一下代码:

//mapper IPage<BookInfo> selectBookPage(IPage<BookInfo> page, @Param(Constants.WRAPPER) QueryWrapper<BookInfo> wrapper);   //service
public IPage<BookInfo> getOne(Params params){
    IPage<BookInfo> pages = new Page<>(params.getPageNum(), params.getPageSize());
    QueryWrapper<BookInfo> queryWrapper = new QueryWrapper<>();
    if (!StringUtils.isBlank(params.getName())) {
        queryWrapper.like("book.name", "%" + params.getName() + "%");
                //这里的列名不添加上去可能会有冲突,我两个表里都有name字段
    }
    if (!StringUtils.isBlank(params.getAuthor())) {
        queryWrapper.like("author",  "%" +params.getAge()+ "%");
    }
    return bookMapper.selectBookPage(pages,queryWrapper);
}

 

//bookMapper.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.example.mapper.BookMapper">
    <resultMap id="orderMap" type="com.example.entity.vo.BookInfo">
        <result property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="price" column="price"/>
        <result property="author" column="author"/>
        <result property="press" column="press"/>
        <result property="img" column="img"/>
        <result property="typeId" column="typeId"/>
        <result property="typeName" column="typeName"/>
    </resultMap>
    <select id="selectBookPage" resultMap="orderMap">
        select book.*,type.name as typeName
        from book left join type on book.typeId =type.id
        ${ew.customSqlSegment}
    </select>
</mapper>

 

标签:queryWrapper,mybatisplus,QueryWrapper,book,params,IPage,多表,联查,书籍
From: https://www.cnblogs.com/Fooo/p/17847086.html

相关文章

  • mybatisplus关于驼峰命名法与下划线的映射
    今天遇到一个很坑的事情,我在测试之前的案例的时候我有一个字段的名字是typeId,我调试之后发现插入出现了错误。开启sql日志之后我发现mybatisplus自动把我的typeId改成type_id了。无奈之下我只能把数据库、实体类的驼峰命名法改成下划线###SQL:SELECTid,name,description,t......
  • 多表查询(跨表查询) 子查询 链表查询 正反向查询概念 聚合查询 分组查询 F查询和Q查询
    昨日内容回顾模板之变量所有的数据类型都可以在模板中使用render(request,'index.html',context={''})render(request,'index.html',context=locals())"""在模板中使用变量的时候,用的是字典的key值,key值value值一般保持一致"""模板之过滤器类似于函数,函数才可以传递参......
  • 销售订单新变更单新增的行关联查询销售订单
    SELECTt2.FENTRYID,t2.FSEQ,t2.FMATERIALID,T3.FENTRYID,T3.FSEQ,T3.FMATERIALID,t21.FROWIDFROMT_SAL_XORDERt1JOINT_SAL_XORDERENTRYt2ONt1.FID=t2.FIDLEFTJOINT_SAL_XORDERENTRY_Et......
  • 5.多表映射
    5.1多表映射的设计技巧对一,属性中包含对方对象;对多,属性中包含对方对象集合。只有真实发生多表查询时,才需要设计和修改实体类,否则不提前设计和修改实体类!无论多少张表联查,实体类设计都是两两考虑!在查询映射的时候,只需要关注本次查询相关的属性!例如:查询订单和对应的客户,就......
  • SpringBoot和mybatisPlus得核心知识点
    SpringBoot自动配置(Auto-Configuration):SpringBoot核心特性之一是自动配置。它尝试根据项目的依赖和内容推断应用程序应该如何配置。这简化了开发人员的工作,因为他们无需手动配置大量的设置。起步依赖(StarterDependencies):SpringBoot提供了一系列预配置的依赖项,称为“起......
  • mybatisPlus进行修改某字段为null时
    在相关字段上加上注解@TableField(strategy=FieldStrategy.IGNORED)如:@TableField(updateStrategy=FieldStrategy.IGNORED)@ApiModelProperty(value="检验结果2:1返工/返修、2整改、3报废")privateIntegerinspResult2; ......
  • 实现MyBatisPlus自定义sql注入器
    目标:新增mysql下的插入更新的语法INSERTINTO%s%sVALUES%sONDUPLICATEKEYUPDATE%s新增方法类,新增的方法名称为insertOrUpdate和insertOrUpdateBatch方法,但其mapper层的方法名为insertOrUpdate方法importcom.baomidou.mybatisplus.annotation.IdType;importcom.b......
  • 手把手教你如何扩展(破解)mybatisplus的sql生成 | 京东云技术团队
    mybatisplus的常用CRUD方法众所周知,mybatisplus提供了强大的代码生成能力,他默认生成的常用的CRUD方法(例如插入、更新、删除、查询等)的定义,能够帮助我们节省很多体力劳动。他的BaseMapper中定义了这些常用的CRUD方法,我们在使用时,继承这个BaseMapper类就默认拥有了这些能力。如果我......
  • Sql server基础使用(三):多表联查
    对所学Sqlserver知识进行一下记录总结,某些用法之间还可以关联使用,欢迎补充和讨论。本人比较懒,结果的截图暂时就先不传了,什么时候想起来再说吧~~这个东西,以我语文不及格的嘴,还真是不太解释的清楚~~虽然嘴残,但还是大概的以我的理解说一下吧。首先,多表联查一般包括:LEFTJOIN/LE......
  • IDEA 集成 EasyCode 插件,快速生成自定义 mybatisplus 代码
    IDEA集成easyCode插件在idea插件市场中,搜索EasyCode插件,下载并进行安装EasyCode插件介绍1.修改作者名称EasyCode插件可以修改作者名称,即生成代码后,注释中自动添加相应作者的姓名。2.TypeMapperTypeMapper指的是生成mapper.xml文件中数据库中的字段和java......