spring boot中实现手动分页

embedded/2025/1/24 6:17:29/

手动分页

  1. 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="cn.mayanan.restapi.mapper.UserMapper"><!-- 在复杂的sql查询中,使用resultMap是最佳实践, 它能清晰的定义嵌套对象的映射规则 --><resultMap id="userResultMap" type="cn.mayanan.restapi.bean.UserBean"><id column="id" property="id" /><result column="name" property="username" /><result column="password" property="password" /></resultMap><!-- 查询所有用户信息 --><select id="getAllUsers" parameterType="map" resultMap="userResultMap">select id, name, password from userorder by idlimit #{pageSize}offset #{offset}</select>
</mapper>
  1. UserMapper.java
java">package cn.mayanan.restapi.mapper;import org.apache.ibatis.annotations.Mapper;
import cn.mayanan.restapi.bean.UserBean;
import org.apache.ibatis.annotations.Param;import java.util.List;
import java.util.Map;@Mapper
public interface UserMapper {List<UserBean> getAllUsers(Map<String, Object> params);
}
  1. UserService.java
java">package cn.mayanan.restapi.service;import cn.mayanan.restapi.bean.UserBean;import java.util.List;
import java.util.Map;public interface UserService {UserBean queryUserById(int id);List<UserBean> queryAllUser(Map<String, Object> params);
}
  1. UserServiceImpl.java
java">package cn.mayanan.restapi.serviceImpl;import cn.mayanan.restapi.bean.UserBean;
import cn.mayanan.restapi.mapper.UserMapper;
import cn.mayanan.restapi.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;
import java.util.Map;@Service
public class UserServiceImpl implements UserService {// 将Dao注入Service层private final UserMapper userMapper;@Autowiredpublic UserServiceImpl(UserMapper userMapper) {this.userMapper = userMapper;}// 查询所有用户信息@Overridepublic List<UserBean> queryAllUser(Map<String, Object> params) {return userMapper.getAllUsers(params);}
}
  1. UserController.java
java">package cn.mayanan.restapi.controller;import cn.mayanan.restapi.bean.UserBean;
import cn.mayanan.restapi.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;import java.util.HashMap;
import java.util.List;
import java.util.Map;// @RestController是一个方便的注解,它结合了@Controller和@ResponseBody注解
@RestController  // 标注为Rest控制器
@RequestMapping("/api")  // 定义基础路径
public class MyRestController {// 将Service注入Controller层private final UserService userService;@Autowiredpublic MyRestController(UserService userService) {this.userService = userService;}// 查询所有用户信息@GetMapping("/users")public List<UserBean> showUsers(@RequestParam(value = "pageSize", defaultValue = "1") int pageSize,@RequestParam(value = "pageNum", defaultValue = "1") int pageNum) {System.out.println("pageSize: " + pageSize + ", pageNum: " + pageNum);// 手动分页Map<String, Object> map = new HashMap<>();int offset = (pageNum - 1) * pageSize;map.put("pageSize", pageSize);map.put("offset", offset);return userService.queryAllUser(map);}
}

http://www.ppmy.cn/embedded/156493.html

相关文章

同城生鲜配送系统架构与功能分析

2015工作至今&#xff0c;10年资深全栈工程师&#xff0c;CTO&#xff0c;擅长带团队、攻克各种技术难题、研发各类软件产品&#xff0c;我的代码态度&#xff1a;代码虐我千百遍&#xff0c;我待代码如初恋&#xff0c;我的工作态度&#xff1a;极致&#xff0c;责任&#xff…

戴尔电脑设置u盘启动_戴尔电脑设置u盘启动多种方法

最近有很多网友问&#xff0c;戴尔台式机怎么设置u盘启动&#xff0c;特别是近两年的戴尔台式机比较复杂&#xff0c;有些网友不知道怎么设置&#xff0c;其实设置u盘启动有两种方法&#xff0c;下面小编教大家戴尔电脑设置u盘启动方法。 戴尔电脑设置u盘启动方法一、戴尔进入b…

【Matlab高端绘图SCI绘图模板】第003期 绘制面积填充图

1.面积图简介 面积图和折线图一样&#xff0c;面积图也用于强调数量随时间而变化的程度&#xff0c;也可用于引起人们对总趋势的注意。他们最常用于表现趋势和关系&#xff0c;而不是传达特定的值。 所有的数据都从相同的零轴开始。每一个数据集的起点不同&#xff0c;都是基…

了解 GRPO 算法:一种强化学习中的高效优化方法

了解 GRPO 算法&#xff1a;一种高效的强化学习优化方法 强化学习&#xff08;Reinforcement Learning&#xff0c;RL&#xff09;作为一种模仿人类行为的学习方式&#xff0c;在很多复杂任务中得到了广泛应用。然而&#xff0c;如何在大规模任务中高效地优化策略&#xff0c;…

09 以太坊技术介绍

以太坊技术架构 架构概述 以太坊属于公链&#xff0c;所有节点都具有相同的功能。 以太坊技术架构自上而下依次为应用层、合约层、通信层、共识层、网络层、数据层、存储层。 应用层 应用层主要对应Dapp应用模块&#xff0c;其中包含多种区块链应用场景典型案例。 合约层 …

2025年黑客技术之网络安全简介(入门篇)

目录 前言 一、什么是网络安全&#xff1f; 二、网络安全的重要性 1、保护数据安全和隐私 2、防止服务中断和数据丢失 3、防止经济损失和法律责任 4、维护公共安全和国家安全 5、提升技术发展和创新 三、网络安全等级保护 1、第一级&#xff08;自主保护级&#xff…

【测试】UI自动化测试

长期更新&#xff0c;建议关注收藏点赞&#xff01; 目录 概论WEB环境搭建Selenium APPAppium 概论 使用工具和代码执行用例。 什么样的项目需要自动化&#xff1f; 需要回归测试、自动化的功能模块需求变更不频繁、项目周期长&#xff08;功能测试时长&#xff1a;UI自动化测…

【数据结构】二分查找

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四" &#x1f50e;&#x1f3c5; 荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…