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

作者:旭东怪 时间:2021-08-12 09:52:55 

 1 MyBatisPlusConfig

MyBatisPlus配置类。


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

 用户查询条件类。


package com.entity;

import lombok.Data;

/**
* 查询条件
*/
@Data
public class UserPagination {
   /**
    * 当前页号
    */
   private int currentPage;
   /**
    * 每页显示条数
    */
   private int pageSize;
}

3 Mapper

3.1 UserMapper.java


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


<?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


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


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

调试代码。


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查询分页

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

6.2 SQL查询分页 

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

 注:

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

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

来源:https://blog.csdn.net/qq_38974638/article/details/119720371

标签:MyBatis-Plus,分页
0
投稿

猜你喜欢

  • 解决Springboot启动报错:类文件具有错误的版本61.0,应为 52.0

    2023-03-13 02:16:11
  • Android中Fab(FloatingActionButton)实现上下滑动的渐变效果

    2021-08-04 11:52:02
  • Unity3D选择本地图片并加载

    2023-11-20 09:25:05
  • JAVA设计模式之备忘录模式原理与用法详解

    2023-08-24 13:23:37
  • java使用dom4j解析xml配置文件实现抽象工厂反射示例

    2022-11-10 15:45:38
  • Java使用IO流实现音频的剪切和拼接

    2023-09-11 08:47:46
  • android实现可自由移动、监听点击事件的悬浮窗

    2022-04-12 14:15:31
  • 使用IntelliJ IDEA 15和Maven创建Java Web项目(图文)

    2023-08-26 07:10:15
  • Java登录功能实现token生成与验证

    2023-11-30 07:57:28
  • WPF实现环(圆)形菜单的示例代码

    2022-05-07 18:46:34
  • C#之CLR内存深入分析

    2023-01-24 17:18:07
  • java打印菱形及直角和等腰三角形的方法

    2023-01-08 20:46:55
  • C#通过NPOI导入导出数据EXCEL

    2023-01-27 14:24:08
  • C++ 让函数返回数组的方法

    2022-12-04 06:49:33
  • C#中静态方法和实例化方法的区别、使用

    2023-08-25 20:49:33
  • java基本教程之synchronized关键字 java多线程教程

    2023-02-20 04:11:17
  • Spring IOC基于注解启动示例详析

    2022-04-19 22:49:55
  • C#网络爬虫代码分享 C#简单的爬取工具

    2023-10-12 15:03:41
  • 分享几个Java工作中实用的代码优化技巧

    2023-11-28 12:04:50
  • java使用Socket类接收和发送数据

    2021-05-26 15:28:47
  • asp之家 软件编程 m.aspxhome.com