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