当前位置: 首页 > news >正文

spring boot中实现手动分页

手动分页

  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
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
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
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
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);}
}

相关文章:

spring boot中实现手动分页

手动分页 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.m…...

【优选算法】5----有效三角形个数

又是一篇算法题&#xff0c;今天早上刚做的热乎的~ 其实我是想写博客但不知道写些什么&#xff08;就水一下啦&#xff09; -------------------------------------begin----------------------------------------- 题目解析: 这道题的题目算是最近几道算法题里面题目最短的&a…...

C++打字模拟

改进于 文宇炽筱_潜水 c版的打字效果_c自动打字-CSDN博客https://blog.csdn.net/2401_84159494/article/details/141023898?ops_request_misc%257B%2522request%255Fid%2522%253A%25227f97863ddc9d1b2ae9526f45765b1744%2522%252C%2522scm%2522%253A%252220140713.1301023…...

最新版pycharm如何配置conda环境

首先在conda prompt里创建虚拟环境&#xff0c;比如 conda create --prefix E:/projects/myenv python3.8然后激活 conda activate E:/projects/myenv往里面安装点自己的包&#xff0c;比如 conda install pytorch1.7.1 torchvision0.8.2 -c pytorch打开pycharm 注意&#x…...

UML-对象图(Object Diagram)

一、定义 UML对象图用于描述系统中对象的状态和相互关系,是类图的一个实例化版本,主要展示了类图中定义的关系在特定时间点的实际体现。它帮助开发者在设计阶段理解对象之间的实际关系、属性值和状态,从而支持系统设计的准确性与有效性。 二、组成要素 UML对象图主要由以…...

Jmeter 动态参数压力测试时间段预定接口

&#x1f3af; 本文档详细介绍了如何使用Apache JMeter进行压力测试&#xff0c;以评估预定接口在高并发场景下的性能表现。通过创建线程组模拟不同数量的用户并发请求&#xff0c;利用CSV文件动态配置时间段ID和用户token&#xff0c;确保了测试数据的真实性和有效性。文档中还…...

超大型集团合并报表数智管理转型

摘要&#xff1a;数字经济时代&#xff0c;数字化技术已成为驱动财务管理价值释放的重要引擎&#xff0c;数智化能力的提升是当前一流财务信息化建设的最新趋势。财务部门是企业的“数据交汇中心”和“信息加工中心”&#xff0c;通过对企业各项财务数据的分类、汇总和清晰呈现…...

[MCAL]Mcu配置

PostBuild: PreCompile: 选择时钟来源&#xff1b; 选择初始McuInitClock() 函数 电路手册里有晶振频率&#xff0c;如上所示&#xff1b;...

Qt基础项目篇——Qt版Word字处理软件

一、核心功能 本软件为多文档型程序&#xff0c;界面是标准的 Windows 主从窗口 拥有&#xff1a;主菜单、工具栏、文档显示区 和 状态栏。 所要实现的东西&#xff0c;均在下图了。 开发该软件&#xff0c;主要分为下面三个阶段 1&#xff09;界面设计开发 多窗口 MDI 程序…...

算法刷题笔记——图论篇

这里写目录标题 理论基础图的基本概念图的种类度 连通性连通图强连通图连通分量强连通分量 图的构造邻接矩阵邻接表 图的遍历方式 深度优先搜索理论基础dfs 与 bfs 区别dfs 搜索过程深搜三部曲所有可达路径广度优先搜索理论基础广搜的使用场景广搜的过程 岛屿数量孤岛的总面积沉…...

Java空指针异常处理:判空、Optional与Assert解析

在Java编程中&#xff0c;空指针异常&#xff08;NullPointerException&#xff09;是最常见的运行时错误之一。本文将深入探讨三种处理空指针异常的方法&#xff1a;传统的判空检查、Java 8引入的Optional类以及使用断言&#xff08;Assert&#xff09;。通过代码示例和应用场…...

【vim】vim编辑器如何设置行号

vim编辑器如何设置行号 一、**临时设置行号**二、永久设置行号2.1. **用户配置文件方式&#xff08;针对当前用户&#xff09;**2.2. **全局配置文件方式&#xff08;谨慎使用&#xff0c;会影响所有用户&#xff09;** 在Vim中设置行号有以下两种常见的方法&#xff1a; 一、…...

MySQL可直接使用的查询表的列信息

文章目录 背景实现方案模板SQL如何查询列如何转大写如何获取字符位置如何拼接字段 SQL适用场景 背景 最近产品找来&#xff0c;想让帮忙出下表的信息&#xff0c;字段驼峰展示&#xff0c;每张表信息show create table全部展示&#xff0c;再逐个粘贴&#xff0c;有点太耗费时…...

在线宠物用品|基于vue的在线宠物用品交易网站(源码+数据库+文档)

|在线宠物用品交易网站 目录 基于springbootvue的在线宠物用品交易网站 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道师&am…...

《安富莱嵌入式周报》第349期:VSCode正式支持Matlab调试,DIY录音室级麦克风,开源流体吊坠,物联网在军工领域的应用,Unicode字符压缩解压

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版&#xff1a; 《安富莱嵌入式周报》第349期&#xff1a;VSCode正式支持Matlab调试&#xff0c;DIY录音室级麦克风…...

使用LabVIEW的History功能实现队列数据的读取而不清空

在LabVIEW中&#xff0c;有多种方法可以读取队列中的数据而不清空它。使用 Dequeue Element 和 Enqueue Element 函数可以实现读取并重新插入数据回队列&#xff0c;但当需要处理大数据流或需要更动态的解决方案时&#xff0c;这种方法可能会变得繁琐。一个更高效的解决方案是利…...

电脑如何访问手机文件?

手机和电脑已经深深融入了我们的日常生活&#xff0c;无时无刻不在为我们提供服务。除了电脑远程操控电脑外&#xff0c;我们还可以在电脑上轻松地访问Android或iPhone手机上的文件。那么&#xff0c;如何使用电脑远程访问手机上的文件呢&#xff1f; 如何使用电脑访问手机文件…...

SpringBoot实现定时任务,使用自带的定时任务以及调度框架quartz的配置使用

SpringBoot实现定时任务&#xff0c;使用自带的定时任务以及调度框架quartz的配置使用 文章目录 SpringBoot实现定时任务&#xff0c;使用自带的定时任务以及调度框架quartz的配置使用一. 使用SpringBoot自带的定时任务&#xff08;适用于小型应用&#xff09;二. 使用调度框架…...

java上传图片功能实现

1 MinIO核心概念 下面介绍MinIO中的几个核心概念&#xff0c;这些概念在所有的对象存储服务中也都是通用的。 对象&#xff08;Object&#xff09; 对象是实际的数据单元&#xff0c;例如我们上传的一个图片。 存储桶&#xff08;Bucket&#xff09; 存储桶是用于组织对象的命…...

73,【5】BUUCTF WEB [网鼎杯 2020 玄武组]SSRFMe(未解出)

进入靶场 又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码又是代码 <?php // 检查 URL 是否为内部 IP 地址 function check_inner_ip($url) {// 使用正则表达式检查 URL 格式是否以 http、https、gopher 或 d…...

postcss-cssnext替代方案终极指南:如何选择最适合的CSS工具

postcss-cssnext替代方案终极指南&#xff1a;如何选择最适合的CSS工具 【免费下载链接】postcss-cssnext postcss-cssnext has been deprecated in favor of postcss-preset-env. 项目地址: https://gitcode.com/gh_mirrors/po/postcss-cssnext 曾经让前端开发者能够使…...

python math

# 关于Python的深拷贝&#xff0c;你可能需要知道这些 在Python里处理数据时&#xff0c;经常会遇到需要复制对象的情况。这时候很多人会直接使用赋值操作&#xff0c;但很快就会发现事情没那么简单。比如你有一个列表&#xff0c;里面嵌套了另一个列表&#xff0c;当你修改嵌套…...

过期域名抢注对SEO优化有什么影响

过期域名抢注对SEO优化有什么影响 在互联网时代&#xff0c;域名作为网站的“地址”在搜索引擎优化&#xff08;SEO&#xff09;中占据重要地位。当一个域名过期且没有被注册&#xff0c;它就成为了一个“空壳”&#xff0c;任何人都可以抢注。过期域名抢注对SEO优化有什么影响…...

手把手教你写一个TextMeshProUGUI尺寸控制器:搞定聊天框、公告板等动态文本布局

手把手构建TextMeshProUGUI智能尺寸控制器&#xff1a;从原理到实战优化 在Unity的UI开发中&#xff0c;文本组件的动态布局一直是让开发者头疼的问题。想象这样一个场景&#xff1a;你的游戏聊天系统需要根据消息长度自动调整气泡大小&#xff0c;公告板要限制文本显示区域避免…...

别再混淆了!一张图搞懂Node.js的process和浏览器环境的区别(附Webpack/Vite配置)

彻底掌握Node.js与浏览器环境差异&#xff1a;从process对象到构建工具实战 第一次在浏览器控制台看到"Uncaught ReferenceError: process is not defined"时&#xff0c;我盯着屏幕愣了三秒——明明在Node.js后端代码里用得好好的process.env&#xff0c;怎么到了前…...

ComfyUI实战:LivePortrait对口型技术深度解析,打造动态人像新体验

1. LivePortrait对口型技术&#xff1a;让静态人像活起来的黑科技 第一次看到LivePortrait生成的效果时&#xff0c;我盯着屏幕愣了三分钟——一张普通的照片竟然能跟着我的语音节奏自然地"说话"&#xff0c;连嘴角的微妙颤动都和真人无异。这种魔法般的体验&#x…...

一种风速测量仪的设计与制作

风速、风向的测量在气象预报、环境监测、风力发电、航空航天等领域中有着重要意义。随着传感器技术、微处理器技术和网络通信技术的发展&#xff0c;相比传统的人工观测&#xff0c;数字化、智能化的气象仪器在观测精度、速度和稳定性等方面都有较大优势&#xff0c;因此针对数…...

手把手教你拆解Coze‘城市觉醒’工作流:从提示词工程到插件调用的保姆级避坑指南

深度拆解Coze“城市觉醒”工作流&#xff1a;从提示词优化到插件调用的高阶实践 清晨五点的城市天际线逐渐亮起&#xff0c;高楼的轮廓在晨雾中若隐若现——这种充满电影感的画面&#xff0c;过去需要专业团队耗费数周时间拍摄剪辑。如今&#xff0c;借助Coze平台的工作流能力&…...

音频转换神器fre:ac:让无损音乐管理更简单

音频转换神器fre:ac&#xff1a;让无损音乐管理更简单 【免费下载链接】freac The fre:ac audio converter project 项目地址: https://gitcode.com/gh_mirrors/fr/freac 价值定位&#xff1a;为什么选择fre:ac作为你的音频处理中心&#xff1f; 在数字音乐时代&#x…...

一键永久珍藏QQ空间回忆:GetQzonehistory完整备份指南

一键永久珍藏QQ空间回忆&#xff1a;GetQzonehistory完整备份指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否担心QQ空间里的珍贵回忆会随着时间流逝而消失&#xff1f;那些记…...