您的位置:首页 > 其它

MyBatisPlus实现分页和查询操作就这么简单

2022-05-09 14:15 183 查看 https://www.cnblogs.com/alanli

《SpringBoot整合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);
}

效果体验

后台日志输出效果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: