《SpringBoot整合MybatisPlus基本的增删改查,保姆级教程》在这篇文章中,我们详细介绍了分页的具体实现方法。但是,在日常的开发中还需要搜索功能的。下面让我们一起动起手来,实现一下吧。
定义查询字段
定义一个类,存放需要用到的查询字段。如下:
package com.didiplus.modules.sys.domain.entity.dto;import lombok.Data;/** * Author: didiplus * Email: 972479352@qq.com * CreateTime: 2022/5/7 * Desc: 检索字段 */@Datapublic 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);}
修改分页实现方法
@Servicepublic 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); }
效果体验
后台日志输出效果:
更多经常的内容请关注微信公众号"攻城狮成长日记"
原文:https://juejin.cn/post/7095617129105326116