好得很程序员自学网

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

MyBatis-Plus实现2种分页方法(QueryWrapper查询分页和SQL查询分页)

 1 MyBatisPlusConfig

MyBatisPlus配置类。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

package com.config;

 

import com.baomidou.mybatisplus.annotation.DbType;

import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;

import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;

import org.springframework.context.annotation.*;

 

/**

  * MyBatisPlus配置类

  */

@Configuration

public class MyBatisPlusConfig {

 

     /**

      * MyBatisPlus拦截器(用于分页)

      */

     @Bean

     public MybatisPlusInterceptor paginationInterceptor() {

         MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();

         //添加MySQL的分页拦截器

         interceptor.addInnerInterceptor( new PaginationInnerInterceptor(DbType.MYSQL));

         return interceptor;

     }

}

2 UserPagination

 用户查询条件类。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

package com.entity;

 

import lombok.Data;

 

/**

  * 查询条件

  */

@Data

public class UserPagination {

     /**

      * 当前页号

      */

     private int currentPage;

     /**

      * 每页显示条数

      */

     private int pageSize;

}

3 Mapper

3.1 UserMapper.java

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

package com.mapper;

 

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import com.entity.UserEntity;

import com.entity.UserPagination;

import org.apache.ibatis.annotations.Mapper;

 

/**

  * 用户信息dao层

  */

@Mapper

public interface UserMapper extends BaseMapper<UserEntity> {

     /**

      * 获取用户信息(SQL查询分页)

      *

      * @param page 分页条件

      * @return

      */

     Page<UserEntity> getUserListBySQLPage(Page<UserEntity> page);

}

3.2 UserMapper.xml

?

1

2

3

4

5

6

7

8

<? xml version = "1.0" encoding = "UTF-8" ?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

< mapper namespace = "com.mapper.UserMapper" >

     < select id = "getUserListBySQLPage" resultType = "com.entity.UserEntity" >

         SELECT *

         from users

     </ select >

</ mapper >

4 Service

4.1 UserService

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

package com.service;

 

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import com.baomidou.mybatisplus.extension.service.IService;

import com.entity.*;

 

 

public interface UserService extends IService<UserEntity> {

     /**

      * 获取用户信息(QueryWrapper查询分页)

      *

      * @param pagination 查询条件

      * @return

      */

     Page<UserEntity> getUserListByQueryWrapperPage(UserPagination pagination);

 

     /**

      * 获取用户信息(SQL查询分页)

      *

      * @param pagination 查询条件

      * @return

      */

     Page<UserEntity> getUserListBySQLPage(UserPagination pagination);

}

4.2 UserServiceImpl

?

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

29

30

31

32

33

34

35

36

37

38

39

package com.service.impl;

 

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import com.entity.*;

import com.mapper.UserMapper;

import com.service.UserService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

 

@Service

public class UserServiceImpl extends ServiceImpl<UserMapper, UserEntity> implements UserService {

    @Autowired

    private UserMapper userMapper;

     /**

      * 获取用户信息(QueryWrapper查询分页)

      *

      * @param pagination 查询条件

      * @return

      */

     public Page<UserEntity> getUserListByQueryWrapperPage(UserPagination pagination) {

         QueryWrapper<UserEntity> queryWrapper = new QueryWrapper<>();

         Page<UserEntity> page = new Page<>(pagination.getCurrentPage(), pagination.getPageSize());

         return this .page(page, queryWrapper);

     }

 

     /**

      * 获取用户信息(SQL查询分页)

      *

      * @param pagination 查询条件

      * @return

      */

     @Override

     public Page<UserEntity> getUserListBySQLPage(UserPagination pagination) {

         Page<UserEntity> page = new Page<>(pagination.getCurrentPage(), pagination.getPageSize());

         return userMapper.getUserListBySQLPage(page);

     }

}

5 UserController

调试代码。

?

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

29

30

31

32

33

34

package com.controller;

 

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import com.entity.*;

import com.service.UserService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.*;

 

@RestController

public class UserController {

     @Autowired

     private UserService userService;

 

     /**

      * 获取用户信息(QueryWrapper查询分页)

      *

      * @return

      */

     @GetMapping ( "/getUserListByQueryWrapperPage" )

     public Page<UserEntity> getUserListByQueryWrapperPage(UserPagination pagination) {

         return userService.getUserListByQueryWrapperPage(pagination);

     }

 

     /**

      * 获取用户信息(SQL查询分页)

      *

      * @return

      */

     @GetMapping ( "/getUserListBySQLPage" )

     public Page<UserEntity> getUserListBySQLPage(UserPagination pagination) {

         return userService.getUserListBySQLPage(pagination);

     }

 

}

6 调试结果 

6.1 QueryWrapper查询分页

6.2 SQL查询分页 

 

 注:

更多MyBatis-Plus的配置请查看以下博客。

Spring Boot 配置MyBatis-Plus(实现查询、新增、更新、删除)

到此这篇关于MyBatis-Plus实现2种分页方法(QueryWrapper查询分页和SQL查询分页)的文章就介绍到这了,更多相关MyBatis-Plus 分页内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

原文链接:https://blog.csdn.net/qq_38974638/article/details/119720371

查看更多关于MyBatis-Plus实现2种分页方法(QueryWrapper查询分页和SQL查询分页)的详细内容...

  阅读:28次