SpringBoot分页查询
1、项目中整合了SpringBoot后,我们在进行分页查询时,也是需要引入分页的相关依赖(pom.xml中进行引入)
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.5</version></dependency>
在对应的application.properties配置分页的分页数据等
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
2、在编写项目时,我们可以先写对应的controller层数据,可以先跟前段进行联调,
package com.cmj.controller;import java.util.List;import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import com.cmj.entity.Teacher;
import com.cmj.service.UserService;
import com.github.pagehelper.PageInfo;@RestController
@RequestMapping("/teacher")
public class TeacherController {@Autowiredprivate UserService userService;// 多个查询(分页)@GetMapping("/selectAllPageQuery")public PageInfo<Teacher> selectAllPageQuery(@RequestParam("name") String name, @RequestParam("pageNum") int pageNum,@RequestParam("pageSize") int pageSize) {return userService.selectAllPageQuery(name,pageNum,pageSize);}}
在入参部分,我们需要传入是我们需要查询的名字,pagesize(每页多少个)、pageNum(第几页(默认是从第一页开始))
这边需要通过PageInfo<Teacher>作为结果的传出,不再是List<Teacher>
3、mapper相关配置文件的编写
TeacherMapper.java:
package com.cmj.dao;
import java.util.List;import org.apache.ibatis.annotations.Mapper;import com.cmj.entity.Teacher;
@Mapper
public interface TeacherMapper {public List<Teacher> selectAll( String name) ;
}
可以直接用我们查询List<Teacher>这块的数据进行,这边也是通过我们的name进行查询
如果说后面入参有多个,可以用@param(“XXX”)进行标识
TeacherMapper.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.cmj.dao.TeacherMapper"><!-- 查询全部的内容 --><select id="selectAll" resultType="teacher" >select * from teacher where name like concat('%', #{name}, '%')</select></mapper>
我们要注意的是,通过模糊查询的话,我们需要用以下的标准格式进行:
like concat('%', #{name}, '%')
4、写完对应Mapper配置文件后,我们后面需要在我们的 service层进行调用我们所要测试的内容
package com.cmj.service;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;import com.cmj.dao.TeacherMapper;
import com.cmj.entity.Teacher;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;@Service
public class UserService {@Autowiredprivate TeacherMapper teacherMapper;// 多个查询public List<Teacher> selectAll(String name) {return teacherMapper.selectAll(name);}// 多个查询(分页)public PageInfo<Teacher> selectAllPageQuery(String name, int pageNum, int pageSize) {PageHelper.startPage(pageNum, pageSize);List<Teacher> list =selectAll(name);PageInfo<Teacher> result = new PageInfo<Teacher>(list);return result;}
}
进行多个分页查询时,我们判断传入的参数,
分页的话,都是需要进行输入:PageHelper.startPage(pageNum, pageSize);
PageHelper.startPage(1, 10);进行查询第一页,每页显示数量为10条
这边的pageNum与pageSize通过前端进行传入:
但是我们要记住的是,这个分页拦截器,需要放在我们需要进行SQL分页的语句前面,并且,该拦截器只会对遇到的第一个SQL进行分页,所以要记住这个所放置的位置;
所以这边的拦截器放在了:List<Teacher> list =selectAll(name);前面。就是需要对这边SQL查询出来的Teacher进行分页
如果我们想获取分页的详细信息的话,我们首先可以先使用
PageInfo<Teacher> result= new PageInfo< Teacher >(list);
后面return返回的result就有对应的详细信息
SpringBoot分页查询相关推荐
- springboot 分页查询参数_精通SpringBoot--分页查询功能的实现
本文将介绍如何实现分页查询功能,推荐使用github的pagehelper插件实现(事实上大家基本都是这么干的),但本文的实现方式和大多数不同,废话少说,现在就带着大家看看区别在哪里. 先看pom.x ...
- springboot 分页查询参数_10. Spring Boot 中的分页查询
在Spring Boot中使用分页查询主要依赖了org.springframework.data.domain.*包下面的及格分页类的功能.使用分页查询常见有两种方式,一种是直接在程序中写死分页的参数 ...
- springboot controller 分页查询_Spring Boot实战分页查询附近的人:Redis+GeoHash+Lua
前言 最近在做社交的业务,用户进入首页后需要查询附近的人: 项目状况:前期尝试业务阶段: 特点: 快速实现(不需要做太重,满足初期推广运营即可) 快速投入市场去运营 收集用户的经纬度: 用户在每次启动 ...
- SpringBoot-07:SpringBoot整合PageHelper做多条件分页查询
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客讲述如何在SpringBoot中整合PageHelper,如何实现带多个条件,以及PageInfo中的 ...
- springboot controller 分页查询_Spring Boot实战分页查询附近的人: Redis+GeoHash+Lua
您的支持是我不断创作巨大动力 CSDN博客地址(关注,点赞) 人工智能推荐 GitHub(Star,Fork,Watch) 前言 最近在做社交的业务,用户进入首页后需要查询附近的人: 项目状况:前期尝 ...
- SpringBoot实现分页查询
SpringBoot实现分页查询 在SpringBoot整合MyBatis-plus实现分页查询 1.创建一个配置类MyBatisPlusConfig 配置类的作用是创建Mybatis-plus的拦截 ...
- SpringBoot+Mybatis+Elasticsearch 实现模糊分页查询并标记关键字
SpringBoot 整合 Elasticsearch 实现模糊分页查询并标记关键字 一.概述 & 介绍 Elasticsearch 是基于 Lucense 技术的搜索引擎(服务器),将数据进 ...
- SpringBoot使用SpringDataJPA通过@Query注解多对多分页查询
文章目录 SpringBoot使用JPA@Query注解查询 1. 环境配置 2. 数据库表配置 3. 实体类配置 4. Dao代码 5. Service 代码 6. Controller 代码 7. ...
- 【Springboot学习笔记】SpringBoot+Mybatis+Thymeleaf+Layui数据表单从零开始实现按条件模糊分页查询的方法
[Springboot学习笔记]SpringBoot+Mybatis+Thymeleaf+Layui数据表单从零开始实现按条件模糊分页查询的方法 目录 1.搭建环境 1.1直接从网上下载SpringB ...
最新文章
- 效率达CPU一万倍的神经形态芯片发布后,英特尔引发了多方吐槽
- vue 实例化几种方式_Vue组件的三种调用方式
- for in在python中什么意思_python for in中的in
- (Spring程序开发)简介程序开发步骤配置文件相关API
- MVVM架构~knockoutjs系列之包括区域级联列表的增删改
- react开发模式_通过开发带有精灵动画的游戏来学习高级React模式
- 数据结构与算法-字典的时间复杂度
- 来自一位程序员女友的内心独白
- 物流系统车辆仓库定位的实现——基于RFID定位的实现方法
- AJAX请求时status返回状态明细表 readyState的五种状态
- Spring Cloud(4):Feign的使用
- findmnt-寻找挂载的文件系统
- Django python session配置和用法
- 给硬盘分个整数大小的区
- 阿里maven仓库地址
- U盘文件夹被病毒隐藏,且不能取消解决办法
- 【latex】.tex文件去tracked changes
- Django 国际化翻译中的 gettext 和 gettext_lazy
- 信息系统项目管理师计算题(期望值)
- 北大教授的美国博士生涯:学术是自由灵魂的分泌物