服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 详解MyBatisPlus如何实现分页和查询操作

详解MyBatisPlus如何实现分页和查询操作

2022-12-07 14:50北根娃 Java教程

这篇文章主要为大家详细介绍了MyBatisPlus是如何实现分页和查询操作的,文中的示例代码讲解详细,对我们学习有一定的帮助,需要的可以参考一下

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

1.定义查询字段

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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.修改分页函数接口

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

?
1
2
3
4
5
6
7
8
9
10
11
12
public interface ISysDictTypeService extends IService<SysDictTypeEntity> {
 
 
    /**
    * 分页查询
    * @param pageDomain
     * @param dictTypeRquest
    * @return
    */
    IPage<SysDictTypeEntity> page(PageDomain pageDomain, DictTypeRquest dictTypeRquest);
 
}

3.修改分页实现方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@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.修改控制层

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

?
1
2
3
4
5
6
7
8
9
10
11
/**
 * 分页查询
 * @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.效果体验

详解MyBatisPlus如何实现分页和查询操作

后台日志输出效果:

详解MyBatisPlus如何实现分页和查询操作

到此这篇关于详解MyBatisPlus如何实现分页和查询操作的文章就介绍到这了,更多相关MyBatisPlus分页 查询内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/alanlin/p/16249084.html

延伸 · 阅读

精彩推荐