解决mybatis-plus不能俩表联查分页之手动写分页

public class MyPageHelper {// 调用pageInfo插件内的方法 开启分页 需要传入一个起始页的值和每页显示的条数public static void startPage(PageRequest pageRequest) {PageHelper.startPage(pageRequest.getPageNum(),pageRequest.getPageSize());}// 封装结果集public static PageResult getPageResult(List content) {// 创建分页对象 将结果传入对象中 pageInfo对象中生成信息PageInfo pageInfo = new PageInfo<>(content);// 创建返回的对象PageResult pageResult = new PageResult();// 获取总页数pageResult.setTotal(pageInfo.getTotal());// 获取结果pageResult.setContent(pageInfo.getList());// 获取总页数pageResult.setPages(pageInfo.getPages());// 获取起始页数pageResult.setPageNum(pageInfo.getPageNum());// 获取每页显示的条数pageResult.setPageSize(pageInfo.getPageSize());// 返回结果return pageResult;}}

public class PageRequest {/***页数*/private int pageNum;/*** 每页的信息的个数*/private int pageSize;public PageRequest() {}public PageRequest(int pageNum, int pageSize) {this.pageNum = pageNum;this.pageSize = pageSize;}/*** 获取* @return pageNum*/public int getPageNum() {return pageNum;}/*** 设置* @param pageNum*/public void setPageNum(int pageNum) {this.pageNum = pageNum;}/*** 获取* @return pageSize*/public int getPageSize() {return pageSize;}/*** 设置* @param pageSize*/public void setPageSize(int pageSize) {this.pageSize = pageSize;}public String toString() {return "PageRequest{pageNum = " + pageNum + ", pageSize = " + pageSize + "}";}
}

public class PageResult {/***页数*/private int pageNum;/*** 每页的信息的个数*/private int pageSize;/*** 总条数*/private Long total;/*** 总页数*/private int pages;/*** 结果集*/private List<?> content;public PageResult() {}public PageResult(int pageNum, int pageSize, Long total, int pages, List<?> content) {this.pageNum = pageNum;this.pageSize = pageSize;this.total = total;this.pages = pages;this.content = content;}/*** 返回结果调用的方法*/public static PageResult getPageResult(List content,PageRequest pageRequest,Long total) {// 创建返回的对象PageResult pageResult = new PageResult();// 将分页后查询到的结果放入对象中pageResult.setContent(content);// 将起始页放入对象中pageResult.setPageNum(pageRequest.getPageNum());// 将每页显示的条数放入对象中pageResult.setPageSize(pageRequest.getPageSize());// 将总条数放入对象中pageResult.setTotal(total);// 返回结果return pageResult;}/*** 获取* @return pageNum*/public int getPageNum() {return pageNum;}/*** 设置* @param pageNum*/public void setPageNum(int pageNum) {this.pageNum = pageNum;}/*** 获取* @return pageSize*/public int getPageSize() {return pageSize;}/*** 设置* @param pageSize*/public void setPageSize(int pageSize) {this.pageSize = pageSize;}/*** 获取* @return total*/public Long getTotal() {return total;}/*** 设置* @param total*/public void setTotal(Long total) {this.total = total;}/*** 获取* @return pages*/public int getPages() {return pages;}/*** 设置* @param pages*/public void setPages(int pages) {this.pages = pages;}/*** 获取* @return content*/public List<?> getContent() {return content;}/*** 设置* @param content*/public void setContent(List<?> content) {this.content = content;}public String toString() {return "PageResult{pageNum = " + pageNum + ", pageSize = " + pageSize + ", total = " + total + ", pages = " + pages + ", content = " + content + "}";}
}

 

 三个实体类写完了后,接下来就是mapper层的编写


@Mapper
public interface StudentDao extends BaseMapper<Student> {List<Student> selectAllChd(PageRequest pageRequest);}

 service的编写与实现类的编写


public interface StudentService  extends IService<Student> {List<Student> selectAllChd(PageRequest pageRequest);}

@Service
public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> implements StudentService  {@ResourceStudentDao studentDao;@Overridepublic List<Student> selectAllChd(PageRequest pageRequest) {return studentDao.selectAllChd(pageRequest);}
}

 


 再接着是controller的编写


@GetMapping("/query")
@ResponseBody
public PageResult queryList() {//分页写出来了System.out.println("进来了query");PageRequest pageRequest=new PageRequest(1,3);int pageNum = pageRequest.getPageNum();pageRequest.setPageNum((pageRequest.getPageSize()*(pageRequest.getPageNum()-1)));List<Student> carManagerEntityList =studentService.selectAllChd(pageRequest);pageRequest.setPageNum(pageNum);Long total = studentService.count();return PageResult.getPageResult(carManagerEntityList,pageRequest,total);
}

mybatis-plus虽然使用起来方便,但是俩表映射就不能使用自带的分页了,所以需要小伙伴自己手动写,下面是映射语句


<resultMap type="com.cskt.entity.Student" id="StudentMap"><result property="sId" column="s_id" jdbcType="INTEGER"/><result property="sName" column="s_name" jdbcType="VARCHAR"/><result property="sSex" column="s_sex" jdbcType="VARCHAR"/><association property="sClass" resultMap="ClassMap"></association>
</resultMap><resultMap id="ClassMap" type="com.cskt.entity.StuClass"><id property="cId" column="c_id"></id><result property="cName" column="c_name"></result>
</resultMap><select id="selectAllChd" resultMap="StudentMap">SELECT * FROM `student` as stu  join stu_class    as sts  on  stu.s_class=sts.c_id   limit #{pageNum} ,#{pageSize}
</select>

 


项目结构如下



查询效果如下,分页成功,并且俩表映射成功,希望可以帮助到各位小伙伴


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/133824.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

七天学会C语言-第一天(C语言基本语句)

一、固定格式 这个是C程序的基本框架&#xff0c;需要记住&#xff01;&#xff01;&#xff01; #include<stdio.h>int main(){return 0; }二、printf 语句 简单输出一句C程序&#xff1a; #include<stdio.h> int main(){printf("大家好&#xff0c;&quo…

9月15日作业

Qt代码 #include "mywnd.h"//构造函数的定义 mywnd::mywnd(QWidget *parent): QWidget(parent) //显性调用父类的有参构造完成对子类从父类继承下来成员的初始化工作 {//窗口设置this->resize(QSize(500, 433));this->setWindowTitle("Widget&quo…

一分钟带你快速了解Prettier+配置指南

什么是 Prettier prettier是一个代码格式化工具&#xff0c;它可以支持JS/JSX/TS/Flow/JSON/CSS/LESS等文件格式。 安装依赖到开发环境 //npm npm install --save-dev --save-exact prettier //yarn yarn add --dev --exact prettier根目录下创建.prettierrc.js 点击查看官…

无涯教程-JavaScript - ASIN函数

描述 ASIN函数返回给定数字的反正弦或反正弦,并返回以弧度表示的Angular,介于-π/2和π/2之间。 语法 ASIN (number)争论 Argument描述Required/OptionalNumberThe sine of the angle you want and must be from -1 to 1.Required Notes 如果您希望ASIN函数返回的Angular以…

XSS入门 XSS Challenges

level1(直接注入) <script>alert(xss)</script>level2(双引号闭合标签) 测试 <sCr<ScRiPt>IPT>OonN"\/(hrHRefEF)</sCr</ScRiPt>IPT>发现<>"被转换&#xff0c;构造新的语句 "><script>alert(/xss/)</…

基于永磁同步发电机的风力发电系统研究(Simulink实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

[Linux入门]---搭建Linux环境

1.Linux环境的搭建方式 使用Linux操作系统的三种途径&#xff1a; 1.直接安装在物理机上&#xff0c;但是由于 Linux 桌面使用起来非常不友好&#xff0c;不推荐。 2.使用虚拟机软件&#xff0c;将 Linux 搭建在虚拟机上&#xff0c;但是由于当前的虚拟机软件(如 VMWare 之类的…

python-爬虫-requests

安装模块 pip install requests在jupyter notebook里使用ShiftTab查看 requests requests库的主要方法 方法解释requests.requset()构造一个请求&#xff0c;支持以下各种方法requests.get()获取HTML的主要方法requests.head()获取HTML头部信息requests.post()向HTML网页提…

CNN(八):Inception V1算法实战与解析

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客 &#x1f356; 原作者&#xff1a;K同学啊|接辅导、项目定制 1 Inception V1 Inception v1论文 1.1 理论知识 GoogLeNet首次出现在2014年ILSVRC比赛中获得冠军。这次的版本通常称其为Inception V1。…

基础版本抖音(字节跳动青训)

抖音基础版&#xff08;字节跳动青训项目&#xff09; 一、项目介绍 本抖音项目是基于grpc通讯协议开发的高性能微服务&#xff0c;不仅使用gin作为业务层框架&#xff0c;gorm框架作为持久层框架&#xff0c;还使用预编译sql防止sql注入&#xff0c;同时该项目结合连接池技术…

【C++】类和对象(中下)

前言&#xff1a; 上一篇文章&#xff0c;我们了解了类的默认成员函数——构造函数、析构函数、拷贝构造函数&#xff0c;这篇我们让我们接着了解。 一、赋值运算符重载&#xff1a; 1.运算符重载&#xff1a; C为了增强代码的可读性引入了运算符重载&#xff0c;运算符重载是…

【Linux从入门到精通】多线程 | 线程互斥(互斥锁)

上篇文章我们对线程 | 线程介绍&线程控制介绍后&#xff0c;本篇文章将会对多线程中的线程互斥与互斥锁的概念进行详解。同时结合实际例子解释了可重入与不被重入函数、临界资源与临界区和原子性的概念。希望本篇文章会对你有所帮助。 文章目录 引入 一、重入与临界 1、1 可…

HTML显示中文空格字符,emsp;一个中文字符,ensp;半个中文字符

&emsp;一个中文字符 &ensp;半个中文字符 <ul><li class"li">姓&emsp;&emsp;名&#xff1a;<input type"text" /></li><li class"li">手&ensp;机&ensp;号&#xff1a;<input type"…

react ant ice3 实现点击一级菜单自动打开它下面最深的第一个子菜单

1.问题 默认的如果没有你的菜单结构是这样的&#xff1a; [{children: [{name: "通用配置"parentId: "1744857774620672"path: "basic"}],name: "系统管理"parentId: "-1"path: "system"} ]可以看到每层菜单的p…

和数集团:我国区块链行业发展具有广阔前景

区块链技术正在引领全球新一轮技术变革和产业变革&#xff0c;推动“信息互联网”向“价值互联网”变迁。 公开资料显示&#xff0c;区块链是一种由多方共同维护&#xff0c;使用密码学保证传输和访问安全&#xff0c;能够实现数据一致存储、难以篡改、防止抵赖的记账技术&…

视频监控/安防监控/AI视频分析/边缘计算EasyCVR平台如何调取登录接口获取token?

安防视频监控管理平台/视频汇聚/视频云存储平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;实现视频资源的鉴权管理、按需调阅、全网分发、云存储、AI智能分析等&#xff0c;视频监控智能分析平台EasyCVR融合性强、…

Gmail邮箱注册情况及最新动态

在中国大陆地区&#xff0c;对于是否可以注册Gmail邮箱一直存在一定的限制和讨论。准确来说&#xff0c;中国大陆地区的用户目前无法直接访问和注册Gmail邮箱。由于某些政策和技术原因&#xff0c;中国政府对于一些外国的网站和服务实施了网络封锁与限制。因此&#xff0c;中国…

地奥“畅依笙”革故鼎新,新品面市! 呵护肠胃 助力大健康!

根据平安健康发布的《2021国民肠道健康调研报告》&#xff0c;肠道问题逐渐年轻化&#xff0c;约90%的国人都会遇到肠道问题。我国肠胃终端产品持续热销&#xff0c;根据2021年淘宝天猫全年益生菌保健品/功能食品市场规模&#xff0c;销售额达63.2亿元&#xff1b;目前益生菌类…

密码学【一】

前言 在区块链的整个体系中大量使用了密码学算法&#xff0c;比如用于 PoW 的哈希算法&#xff0c;用于完整性验证的 Merkle Tree&#xff0c;用于交易签名与验证的数字签名算法&#xff0c;用于隐私保护的零知识证明等等。 可以说密码学是保证区块链安全的基石&#xff0c;而区…

JDK9特性——语法、API的改变

文章目录 语法层次改变钻石操作符号语法升级try结构语法升级下划线命名标识符的使用限制 API层次的改变接口中的私有方法String底层存储结构变化Stream新增4个APIInputStream新增transferTo方法只读集合创建 语法层次改变 钻石操作符号语法升级 钻石操作符&#xff0c;就是我…