好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

详解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分页 查询内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

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

查看更多关于详解MyBatisPlus如何实现分页和查询操作的详细内容...

  阅读:16次