1、ScheduleController.java
javapackage com.atguigu.schedule.controller; import com.atguigu.schedule.dto.Result; import com.atguigu.schedule.service.ScheduleService; import com.atguigu.schedule.vo.ScheduleQueryVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/schedule") @CrossOrigin public class ScheduleController { @Autowired private ScheduleService scheduleService; @GetMapping("/{pageNum}") public Result list(@PathVariable Integer pageNum, Integer uid) { ScheduleQueryVo queryVo = new ScheduleQueryVo(uid,pageNum); return Result.ok(scheduleService.getSchedulePageInfo(queryVo)); } }
2、ScheduleQueryVo.java
javapackage com.atguigu.schedule.vo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; //日程的查询条件封装成一个java对象,我们将这样的对象称之为查询条件对象(Query Object) @Data @NoArgsConstructor @AllArgsConstructor public class ScheduleQueryVo { private Integer uid; private Integer pageNum; //页码:显示第几页 private Integer pageSize = 3; //页大小 public ScheduleQueryVo(Integer uid, Integer pageNum) { this.uid = uid; this.pageNum = pageNum; } }
3、ScheduleServiceImpl.java
javapackage com.atguigu.schedule.service.impl; import com.atguigu.schedule.mapper.ScheduleMapper; import com.atguigu.schedule.pojo.Schedule; import com.atguigu.schedule.service.ScheduleService; import com.atguigu.schedule.vo.ScheduleQueryVo; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; @Service @Transactional public class ScheduleServiceImpl implements ScheduleService { @Autowired private ScheduleMapper scheduleMapper; @Override @Transactional public PageInfo<Schedule> getSchedulePageInfo(ScheduleQueryVo queryVo) { PageHelper.startPage(queryVo.getPageNum(), queryVo.getPageSize()); List<Schedule> scheduleList = scheduleMapper.getScheduleList(queryVo.getUid()); return new PageInfo<>(scheduleList); } }
4、ScheduleMapper.java
javapackage com.atguigu.schedule.mapper; import com.atguigu.schedule.pojo.Schedule; import org.springframework.stereotype.Repository; import java.util.List; @Repository public interface ScheduleMapper { List<Schedule> getScheduleList(Integer sysUserId); }
5、ScheduleMapper.xml
XML<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- namespace等于mapper接口类的全限定名,这样实现对应 --> <mapper namespace="com.atguigu.schedule.mapper.ScheduleMapper"> <select id="getScheduleList" resultType="Schedule"> select * from sys_schedule where uid = #{value} </select> </mapper>
6、PageHelper.startPage()
PageHelper.startPage()是MyBatis-Plus中的一个分页插件,用于开启分页操作。
在MyBatis-Plus中,分页插件PageHelper可以自动对SQL语句进行分页处理,无需手动编写分页代码。PageHelper.startPage()方法的作用是标记当前请求为分页请求,并初始化分页参数。
通过调用PageHelper.startPage(),可以指定分页参数,如每页显示记录数、当前页码等。这些参数将被封装为一个分页对象Page,并将其传递给后续的查询操作。使用Page对象可以获取查询结果列表以及一些分页信息,如总记录数、总页数等。
例如,以下代码演示了如何使用PageHelper.startPage()开启分页:
java// 初始化分页参数 int pageNum = 1; // 当前页码 int pageSize = 10; // 每页显示记录数 // 开启分页 PageHelper.startPage(pageNum, pageSize); // 执行查询操作 List<User> userList = userMapper.selectList(null); // 获取分页信息 Page<User> page = new Page<>(pageNum, pageSize); page.setCount(userMapper.selectCount(null)); // 获取总记录数
通过调用PageHelper.startPage(),可以方便地实现分页查询操作,并获取查询结果和分页信息。
SSM项目实战-后端-日程列表查询实现
丁总学Java2023-12-08 1:34
相关推荐
带刺的坐椅7 分钟前
Solon AI 五步构建 RAG 服务:2025 最新 AI + 向量数据库实战东阳马生架构44 分钟前
商品中心—7.自研缓存框架的技术文档晴空月明3 小时前
线程安全与锁机制深度解析天天摸鱼的java工程师4 小时前
你如何处理一个高并发接口的线程安全问题?说说你做过的优化措施Micro麦可乐5 小时前
最新Spring Security实战教程(十八)安全日志与审计:关键操作追踪与风险预警刘一说5 小时前
资深Java工程师的面试题目(六)数据存储江沉晚呤时5 小时前
EventSourcing.NetCore:基于事件溯源模式的 .NET Core 库考虑考虑5 小时前
JDK17中的Sealed Classes写bug写bug6 小时前
深入理解Unsafe类星垣矩阵架构师6 小时前
六.架构设计之存储高性能——缓存