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

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

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

效果体验


后台日志输出效果:

目录
相关文章
|
19天前
|
XML Java 数据库连接
mybatis中在xml文件中通用查询结果列如何使用
mybatis中在xml文件中通用查询结果列如何使用
51 0
|
19天前
|
Java 数据库连接 mybatis
Mybatis 多级分类查询
Mybatis 多级分类查询
21 0
|
19天前
SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
35 0
|
19天前
|
SQL Java 关系型数据库
Mybatis多表关联查询与动态SQL(下)
Mybatis多表关联查询与动态SQL
31 0
|
19天前
|
SQL Java 数据库连接
Mybatis多表关联查询与动态SQL(上)
Mybatis多表关联查询与动态SQL
19 0
|
19天前
|
SQL 缓存 Java
mybatis 一对多查询
mybatis 一对多查询
28 0
|
19天前
|
SQL
MyBatis-Plus-Join关联查询
MyBatis-Plus-Join关联查询
|
19天前
|
SQL XML Java
MyBatis-Plus多表关联查询
MyBatis-Plus多表关联查询
|
5天前
|
SQL Java 数据库连接
MyBatis 查询数据库
MyBatis 查询数据库
|
10天前
|
算法 BI 数据库
MyBatisPlus查询条件设置、映射匹配兼容性、id生成策略、多数据操作
MyBatisPlus查询条件设置、映射匹配兼容性、id生成策略、多数据操作
21 3