SpringBoot MyBatis 實現分頁查詢數據【SpringBoot系列4】

SpringBoot MyBatis 實現分頁查詢數據【SpringBoot系列4】,第1張

1 項目準備

SpringBoot 搭建項目 【SpringBoot系列1】

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

SpringBoot 集成 Druid 數據源【SpringBoot系列3】

pagehelper是一個mybatis的分頁插件,首先在 pom.xml 文件中添加分頁插件依賴包。

 !-- /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)); }
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();  List UserInfo selectPage();}

UserMapper.xml

 ?xml version="1.0" encoding="UTF-8"? !DOCTYPE mapper PUBLIC"-////DTD Mapper 3.0//EN""/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 中執行請求,已可以實現分頁請求

SpringBoot MyBatis 實現分頁查詢數據【SpringBoot系列4】,第2張

項目源碼在這裡 (或者可以點擊查看原文)

https://gitee.com/android.long/spring-boot-study/tree/master/biglead-api-04-pagehelper

生活常識_百科知識_各類知識大全»SpringBoot MyBatis 實現分頁查詢數據【SpringBoot系列4】

0條評論

    發表評論

    提供最優質的資源集郃

    立即查看了解詳情