MyBatisPlus如何轻松实现分页查询功能?

2026-05-06 06:021阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计509个文字,预计阅读时间需要3分钟。

MyBatisPlus如何轻松实现分页查询功能?

《SpringBoot整合MybatisPlus的基本增删改查,保姆级教程》

本文详细介绍了分页的具体实现方法。然而,在日常开发中,我们还需要搜索功能。接下来,让我们动手实现搜索功能。

《SpringBoot整合MybatisPlus基本的增删改查,保姆级教程》在这篇文章中,我们详细介绍了分页的具体实现方法。但是,在日常的开发中还需要搜索功能的。下面让我们一起动起手来,实现一下吧。

定义查询字段

定义一个类,存放需要用到的查询字段。如下:

MyBatisPlus如何轻松实现分页查询功能?

package com.didiplus.modules.sys.domain.entity.dto; import lombok.Data; /** * Author: didiplus * Email: 972479352@qq.com * CreateTime: 2022/5/7 * Desc: 检索字段 */ @Data public class DictTypeRquest { /** * 字段名称 */ private String typeName; /** * 字段编码 */ private String typeCode; /** * 是否启用 */ private String enable; } 修改分页函数接口

在分页函数接口中添加查询字段参数,如下:

public interface ISysDictTypeService extends IService<SysDictTypeEntity> { /** * 分页查询 * @param pageDomain * @param dictTypeRquest * @return */ IPage<SysDictTypeEntity> page(PageDomain pageDomain, DictTypeRquest dictTypeRquest); } 修改分页实现方法

@Service public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDictTypeEntity> implements ISysDictTypeService { @Resource SysDictTypeMapper sysDictTypeMapper; @Override public IPage<SysDictTypeEntity> page(PageDomain pageDomain, DictTypeRquest dictTypeRquest) { IPage<SysDictTypeEntity> page = new Page<>(pageDomain.getPage(),pageDomain.getLimit()); LambdaQueryWrapper<SysDictTypeEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.like(StrUtil.isNotEmpty(dictTypeRquest.getTypeName()),SysDictTypeEntity::getTypeName,dictTypeRquest.getTypeName()) .like(StrUtil.isNotEmpty(dictTypeRquest.getTypeCode()),SysDictTypeEntity::getTypeCode,dictTypeRquest.getTypeCode()) .eq(StrUtil.isNotEmpty(dictTypeRquest.getEnable()),SysDictTypeEntity::getEnable,dictTypeRquest.getEnable()); return sysDictTypeMapper.selectPage(page,lambdaQueryWrapper); } }

StrUtil.isNotEmpty是先判断查询参数是否不为空,不为空才会把查询条件拼接在一起,这样就实现了动态SQL啦。

修改控制层

在控制层添加查询参数,代码如下:

/** * 分页查询 * @param pageDomain 分页对象 * @param dictTypeRquest * @return IPage */ @ApiOperation(value = "分页查询", notes = "分页查询") @GetMapping("/page") public IPage<SysDictTypeEntity> getSysDictTypePage(PageDomain pageDomain, DictTypeRquest dictTypeRquest) { return sysDictTypeService.page(pageDomain,dictTypeRquest); } 效果体验


后台日志输出效果:

本文共计509个文字,预计阅读时间需要3分钟。

MyBatisPlus如何轻松实现分页查询功能?

《SpringBoot整合MybatisPlus的基本增删改查,保姆级教程》

本文详细介绍了分页的具体实现方法。然而,在日常开发中,我们还需要搜索功能。接下来,让我们动手实现搜索功能。

《SpringBoot整合MybatisPlus基本的增删改查,保姆级教程》在这篇文章中,我们详细介绍了分页的具体实现方法。但是,在日常的开发中还需要搜索功能的。下面让我们一起动起手来,实现一下吧。

定义查询字段

定义一个类,存放需要用到的查询字段。如下:

MyBatisPlus如何轻松实现分页查询功能?

package com.didiplus.modules.sys.domain.entity.dto; import lombok.Data; /** * Author: didiplus * Email: 972479352@qq.com * CreateTime: 2022/5/7 * Desc: 检索字段 */ @Data public class DictTypeRquest { /** * 字段名称 */ private String typeName; /** * 字段编码 */ private String typeCode; /** * 是否启用 */ private String enable; } 修改分页函数接口

在分页函数接口中添加查询字段参数,如下:

public interface ISysDictTypeService extends IService<SysDictTypeEntity> { /** * 分页查询 * @param pageDomain * @param dictTypeRquest * @return */ IPage<SysDictTypeEntity> page(PageDomain pageDomain, DictTypeRquest dictTypeRquest); } 修改分页实现方法

@Service public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDictTypeEntity> implements ISysDictTypeService { @Resource SysDictTypeMapper sysDictTypeMapper; @Override public IPage<SysDictTypeEntity> page(PageDomain pageDomain, DictTypeRquest dictTypeRquest) { IPage<SysDictTypeEntity> page = new Page<>(pageDomain.getPage(),pageDomain.getLimit()); LambdaQueryWrapper<SysDictTypeEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.like(StrUtil.isNotEmpty(dictTypeRquest.getTypeName()),SysDictTypeEntity::getTypeName,dictTypeRquest.getTypeName()) .like(StrUtil.isNotEmpty(dictTypeRquest.getTypeCode()),SysDictTypeEntity::getTypeCode,dictTypeRquest.getTypeCode()) .eq(StrUtil.isNotEmpty(dictTypeRquest.getEnable()),SysDictTypeEntity::getEnable,dictTypeRquest.getEnable()); return sysDictTypeMapper.selectPage(page,lambdaQueryWrapper); } }

StrUtil.isNotEmpty是先判断查询参数是否不为空,不为空才会把查询条件拼接在一起,这样就实现了动态SQL啦。

修改控制层

在控制层添加查询参数,代码如下:

/** * 分页查询 * @param pageDomain 分页对象 * @param dictTypeRquest * @return IPage */ @ApiOperation(value = "分页查询", notes = "分页查询") @GetMapping("/page") public IPage<SysDictTypeEntity> getSysDictTypePage(PageDomain pageDomain, DictTypeRquest dictTypeRquest) { return sysDictTypeService.page(pageDomain,dictTypeRquest); } 效果体验


后台日志输出效果: