找回密码
 立即注册
查看: 21|回复: 0

JavaWeb(SpringBoot3+vue3)开发+教学管理系统项目实战之PageHelper分页插件

[复制链接]

73

主题

3

精华

77

金币

技术维护QQ:515138

积分
165
发表于 6 天前 | 显示全部楼层 |阅读模式
JavaWeb(SpringBoot3+vue3)开发+教学管理系统项目实战之PageHelper分页插件
一,原始分页操作方法:
C层:
  1. package com.zidiu.controller;
  2. import com.zidiu.pojo.Emp;
  3. import com.zidiu.pojo.PageResult;
  4. import com.zidiu.pojo.Result;
  5. import com.zidiu.service.EmpService;
  6. import lombok.extern.slf4j.Slf4j;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.web.bind.annotation.GetMapping;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.RequestParam;
  11. import org.springframework.web.bind.annotation.RestController;
  12. @RequestMapping("/emps")
  13. @Slf4j
  14. @RestController
  15. public class EmpController {
  16.     @Autowired
  17.     private EmpService empService;
  18.     /**
  19.      * 查询员工列表带分页
  20.      */
  21.     @GetMapping
  22.     public Result page(@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "5") Integer pageSize) {
  23.         log.info("查询员工信息,页码page: {}, 每页记录数pageSize: {}", page, pageSize);
  24.         PageResult<Emp> pageResult = empService.page(page, pageSize);
  25.         return Result.success(pageResult);
  26.     }
  27. }
复制代码
Service层:
  1. package com.zidiu.service;
  2. import com.zidiu.pojo.Emp;
  3. import com.zidiu.pojo.PageResult;
  4. import java.util.List;
  5. public interface EmpService {
  6.       /**
  7.      * 分页查询
  8.      * @param page 页码
  9.      * @param pageSize 每页记录数
  10.      */
  11.     PageResult<Emp> page(Integer page, Integer pageSize);
  12. }
复制代码
S实现层:
  1. package com.zidiu.service.impl;
  2. import com.zidiu.mapper.EmpMapper;
  3. import com.zidiu.pojo.Emp;
  4. import com.zidiu.pojo.PageResult;
  5. import com.zidiu.service.EmpService;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Service;
  8. import java.util.List;
  9. @Service
  10. public class EmpServiceImpl implements EmpService {
  11.     @Autowired
  12.     private EmpMapper empMapper;
  13.     /**
  14.      * 查询员工列表
  15.      */
  16.     @Override
  17.     public PageResult<Emp> page(Integer page, Integer pageSize) {
  18.         // 1,获取总记录数
  19.         Long total = empMapper.count();
  20.         // 2,获取分页查询结果列表
  21.         int start = (page - 1) * pageSize;
  22.         List<Emp> rows = empMapper.list(start, pageSize);
  23.         // 3,封装PageResult并返回
  24.         return new PageResult<Emp>(total, rows);
  25.     }
  26. }
复制代码
M层:
  1. package com.zidiu.mapper;
  2. import com.zidiu.pojo.Emp;
  3. import org.apache.ibatis.annotations.Mapper;
  4. import org.apache.ibatis.annotations.Select;
  5. import java.util.List;
  6. @Mapper
  7. public interface EmpMapper {
  8.     /**
  9.      * 查询所有员工信息
  10.      */
  11.     @Select("select e.*, d.name as deptName from emp e left join dept d on e.dept_id = d.id limit #{start}, #{pageSize}")
  12.     List<Emp> list(int start, int pageSize);
  13.     /**
  14.      * 查询员工总数
  15.      */
  16.     @Select("select count(*) from emp e left join dept d on e.dept_id = d.id")
  17.     Long count();
  18. }
复制代码
二,PageHelper分页插件
1.png
1). 在pom.xml引入依赖
  1. <!--分页插件PageHelper-->
  2. <dependency>
  3.     <groupId>com.github.pagehelper</groupId>
  4.     <artifactId>pagehelper-spring-boot-starter</artifactId>
  5.     <version>2.1.1</version>
  6. </dependency>
复制代码
2). EmpMapper
  1. package com.zidiu.mapper;
  2. import com.zidiu.pojo.Emp;
  3. import org.apache.ibatis.annotations.Mapper;
  4. import org.apache.ibatis.annotations.Select;
  5. import java.util.List;
  6. @Mapper
  7. public interface EmpMapper {
  8.     /**
  9.      * 查询所有员工信息
  10.      */
  11.     /**
  12.      * 查询所有的员工及其对应的部门名称
  13.      */
  14.     @Select("select e.*, d.name deptName from emp as e left join dept as d on e.dept_id = d.id")
  15.     public List<Emp> list();
  16.     /**
  17.      * 查询员工总数
  18.      */
  19.     @Select("select count(*) from emp e left join dept d on e.dept_id = d.id")
  20.     Long count();
  21. }
复制代码
3). EmpServiceImpl
  1. package com.zidiu.service.impl;
  2. import com.github.pagehelper.Page;
  3. import com.github.pagehelper.PageHelper;
  4. import com.zidiu.mapper.EmpMapper;
  5. import com.zidiu.pojo.Emp;
  6. import com.zidiu.pojo.PageResult;
  7. import com.zidiu.service.EmpService;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Service;
  10. import java.util.List;
  11. @Service
  12. public class EmpServiceImpl implements EmpService {
  13.     @Autowired
  14.     private EmpMapper empMapper;
  15.     /**
  16.      * 查询员工列表
  17.      */
  18.     @Override
  19.     public PageResult<Emp> page(Integer page, Integer pageSize) {
  20.         //1. 设置分页参数,页码和每页记录数
  21.         PageHelper.startPage(page,pageSize);
  22.         //2. 执行查询
  23.         List<Emp> empList = empMapper.list();
  24.         Page<Emp> p = (Page<Emp>) empList;
  25.         //3. 封装结果
  26.         return new PageResult<Emp>(p.getTotal(), p.getResult());
  27.     }
  28. }
复制代码

SpringBoot3+Vue3开发综合实战项目:
JavaWeb(SpringBoot3+vue3)开发+教学管理系统项目实战

网站建设,公众号小程序开发,系统定制,软件App开发,技术维护【联系我们】手机/微信:17817817816 QQ:515138

QQ|Archiver|自丢网 ( 粤ICP备2024252464号-1 )

GMT+8, 2025-12-1 07:43

专注于网站建设,公众号小程序制作,商城小程序,系统定制,软件App开发

【联系我们】手机/微信:17817817816 QQ:515138

快速回复 返回顶部 返回列表