MyBatisPlus分页 查询
北根娃 人气:0《SpringBoot整合MybatisPlus实现增删改查功能》在这篇文章中,我们详细介绍了分页的具体实现方法。但是,在日常的开发中还需要搜索功能的。下面让我们一起动起手来,实现一下吧。
1.定义查询字段
定义一个类,存放需要用到的查询字段。如下:
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; }
2.修改分页函数接口
在分页函数接口中添加查询字段参数,如下:
public interface ISysDictTypeService extends IService<SysDictTypeEntity> { /** * 分页查询 * @param pageDomain * @param dictTypeRquest * @return */ IPage<SysDictTypeEntity> page(PageDomain pageDomain, DictTypeRquest dictTypeRquest); }
3.修改分页实现方法
@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啦。
4.修改控制层
在控制层添加查询参数,代码如下:
/** * 分页查询 * @param pageDomain 分页对象 * @param dictTypeRquest * @return IPage */ @ApiOperation(value = "分页查询", notes = "分页查询") @GetMapping("/page") public IPage<SysDictTypeEntity> getSysDictTypePage(PageDomain pageDomain, DictTypeRquest dictTypeRquest) { return sysDictTypeService.page(pageDomain,dictTypeRquest); }
5.效果体验
后台日志输出效果:
加载全部内容