打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SpringBoot MyBatis 实现分页查询数据【SpringBoot系列4】

1 项目准备

SpringBoot 搭建项目 【SpringBoot系列1】

SpringBoot 集成 MyBatis 框架 【SpringBoot系列2】

SpringBoot 集成 Druid 数据源【SpringBoot系列3】

pagehelper是一个mybatis的分页插件,首先在 pom.xml 文件中添加分页插件依赖包。

<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter --><dependency>    <groupId>com.github.pagehelper</groupId>    <artifactId>pagehelper-spring-boot-starter</artifactId>    <version>1.4.6</version></dependency>

然后在 application.yml 配置文件中添加分页插件有关的配置。

pagehelper:  helperDialect: mysql  reasonable: true  supportMethodsArguments: true  params: count=countSql

定义分页请求体,主要是用于当前请求的是第几页数据以及每页数据加载多少条

import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.ToString;
/** * 分页请求 */@Data@ToString@AllArgsConstructor@NoArgsConstructorpublic class PageRequest { /** * 当前页码 */ private int pageNum; /** * 每页数量 */ private int pageSize;
}

定义分页返回结果集 PageResult

import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.ToString;
import java.util.List;/** * 分页返回结果 */
@Data@ToString@AllArgsConstructor@NoArgsConstructorpublic class PageResult { /** * 当前页码 */ private int pageNum; /** * 每页数量 */ private int pageSize; /** * 记录总数 */ private long totalSize; /** * 页码总数 */ private int totalPages; /** * 数据模型 */ private List<?> content; }

PageUtils 将分页信息封装到统一的接口

import com.github.pagehelper.PageInfo;
public class PageUtils {
public static PageResult getPageResult(PageRequest pageRequest, PageInfo<?> pageInfo) { PageResult pageResult = new PageResult(); pageResult.setPageNum(pageInfo.getPageNum()); pageResult.setPageSize(pageInfo.getPageSize()); pageResult.setTotalSize(pageInfo.getTotal()); pageResult.setTotalPages(pageInfo.getPages()); pageResult.setContent(pageInfo.getList()); return pageResult; }}

实现分页请求

首先是 UserController 中

@Api(tags="用户模块")@RestController@RequestMapping("user")public class UserController {    @Resource    private UserService userService;     @PostMapping(value="/findPage")    @ApiOperation(value = "分页查询")    public Object findPage(@RequestBody PageRequest pageQuery) {        return userService.findPage(pageQuery);    }}

UserService.java

public interface UserService {    PageResult findPage(PageRequest pageRequest);}

UserServiceImpl.java

@Servicepublic class UserServiceImpl implements UserService {    @Resource    private UserMapper userMapper;     @Override    public PageResult findPage(PageRequest pageRequest) {        return PageUtils.getPageResult(pageRequest, getPageInfo(pageRequest));    }
/** * 调用分页插件完成分页 * @return */ private PageInfo<UserInfo> getPageInfo(PageRequest pageRequest) { int pageNum = pageRequest.getPageNum(); int pageSize = pageRequest.getPageSize(); PageHelper.startPage(pageNum, pageSize); List<UserInfo> userInfoList = userMapper.selectPage(); return new PageInfo<UserInfo>(userInfoList); }}

UserMapper.java

public interface UserMapper {    List<UserInfo> selectList();    /**     * 分页查询用户     * @return     */    List<UserInfo> selectPage();}

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.biglead.demo.mapper.UserMapper">    <resultMap id="BaseResultMap" type="com.biglead.demo.pojo.UserInfo">        <id column="id" jdbcType="BIGINT" property="userId"/>        <result column="create_time" property="createTime"/>        <result column="user_name" property="userName"/>        <result column="user_age" property="userAge"/>    </resultMap>
<select id="selectList" resultMap="BaseResultMap"> select id, user_name, user_age, create_time from t_user </select>
<select id="selectPage" resultMap="BaseResultMap"> select id, user_name, user_age, create_time from t_user </select>
</mapper>

然后在 postman 中执行请求,已可以实现分页请求

项目源码在这里 (或者可以点击查看原文)

https://gitee.com/android.long/spring-boot-study/tree/master/biglead-api-04-pagehelper
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Spring Boot 整合mybatis分页失效
Mybatis分页插件-pagehelper
MyBatis分页组件--PageHelper
Spring Boot MyBatis Druid PageHelper 实现多数据源并...
淘淘商城
SpringBoot集成PageHelper(Oracle数据库)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服