前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Mybatis分页功能

Mybatis分页功能

作者头像
用户11097514
发布于 2024-05-30 12:13:40
发布于 2024-05-30 12:13:40
12900
代码可运行
举报
文章被收录于专栏:技术分享技术分享
运行总次数:0
代码可运行

分页插件

添加依赖
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
	<groupId>com.github.pagehelper</groupId>
	<artifactId>pagehelper</artifactId>
    <version>5.2.0</version>
</dependency>
配置插件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<plugins>
	<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>

分页插件的使用

几种须知的条件

limit index, pageSize

index : 当前页的起始索引

pageSize : 每页显示的数据条数

pageNum : 当前页的页码

count :总记录数

totalPage :总页数 totalPage = count / pageSize

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//如果从记录数 / 每页显示的数据 结果无法整除
//这种情况就是还有几条多余的数据无法显示,需要我们自己再添加一页进行显示
if(count % pagesize != 0){
    totalPage += 1;
}

举例说明:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 pageSize  = 4 ,pageNum = 1, index= 0   limit 04
 pageSize  = 4 ,pageNum = 3, index= 8   limit 84
 pageSize  = 4 ,pageNum = 6, index= 20   limit 204
//每页显示4条数据 ,如果当前页为1 , 那么数据的索引就是从0开始 ,limit后面的数据就是从0 开始,页面显示数据为4条
//每页显示4条数据 ,如果当前页为3 , 那么数据的索引就是从前两页显示完后的数据(需要显示的数据就是从9 - 12),也就是从2*4=8开始 ,limit后面的数据就是从8开始,页面显示数据为4条
//每页显示4条数据 ,如果当前页为6 , 那么数据的索引就是从前两页显示完后的数据(需要显示的数据就是从21 - 24),也就是从5*4=20开始 ,limit后面的数据就是从20开始,页面显示数据为4条

list.forEach(System.out::println);列表查询

PageInfo中的属性

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class PageInfo<T> implements Serializable {
    private static final long serialVersionUID = 1L;
    private int pageNum;  	//当前页的页码
    private int pageSize;	//每页显示的数据
    private int size;		//当前页显示的真实条数
    private int startRow;	//当前页从第几行开始 
    private int endRow;		//当前页从而几行结束
    private long total;		//总共有多少条数据
    private int pages;		//总共页数
    private List<T> list;	//存储的数据
    private int prePage;	//上一页的页码
    private int nextPage;	//下一页的页码
    private boolean isFirstPage;//是否为第一页
    private boolean isLastPage;///是否为最后一页
    private boolean hasPreviousPage;//是否有上一页
    private boolean hasNextPage;//是否有下一页
    private int navigatePages;//当前导航分页的页码数
    private int[] navigatepageNums;//导航分页的总页码
    private int navigateFirstPage;
    private int navigateLastPage;

后端

  1. 开启分页显示
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RequestMapping("/list/{pageNum}")
public String pageStart(@PathVariable("pageNum") Integer pageNum, Model model){
    PageInfo<employee> page = employeeService.Page(pageNum);
    List<employee> list = page.getList();
    model.addAttribute("list",list);
    model.addAttribute("page",page);
	return "list";
}
  1. 在service层中开启分页以及获取数据,然后将数据回显到controller层
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Override
public PageInfo<employee> Page(Integer pageNum) {
    //开启分页功能,每页显示8条数据
    PageHelper.startPage(pageNum,8);
    List<employee> list = EmpMapper.selectAll();
    for(employee li : list){
        dept dept = DeptMapper.selectByPrimaryKey(li.getDeptId());
        li.setDep(dept);
    }
    PageInfo<employee> pageInfo = new PageInfo<>(list,4);
    return pageInfo;
}

前端

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <!--分页的相关功能-->
<div style="text-align: center" >
    <!--判断是否有前一页-->
    <span th:if="${page.hasPreviousPage}">
        <a class="btn btn-sm btn-primary"  th:href="@{/list/1}">首页</a>
        <a class="btn btn-sm btn-primary"  th:href="@{'/list/' + ${page.prePage}}">上一页</a>
    </span>
    <!--显示需要展示的页码范围 ,通过navigatepage 来进行设置范围-->
    <span th:each="num : ${page.navigatepageNums}">
        <a class="btn btn-sm btn-primary"  th:if="${page.pageNum==num}" th:href="@{'/list/'+${num}}" th:text="'['+${num}+']'" style="color:#d51313;"></a>
        <a class="btn btn-sm btn-primary"  th:if="${page.pageNum!=num}" th:href="@{'/list/'+${num}}" th:text="${num} "></a>
    </span>
    <!--判断是否有下一页数据-->
    <span th:if="${page.hasNextPage}">
        <a class="btn btn-sm btn-primary"  th:href="@{'/list/'+${page.nextPage}}">下一页</a>
        <a class="btn btn-sm btn-primary"  th:href="@{'/list/'+${page.pages}}">末页</a>
    </span>
</div>

通过超链接发送请求的参数,然后通过与controller请求映射进行匹配,从而将请求发送至后端来处理

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
OpenAI 官方提示工程指南【中文版】
这份指南分享了如何更有效地利用像如 GPT-4 这样的大语言模型(有时候也叫 GPT 模型)来获得更好的结果。介绍的方法可以相互结合,以发挥更大的作用。我们鼓励你进行实验,寻找最适合你的技巧。
轩源
2024/09/29
2390
OpenAI官方的Prompt工程指南:你可以这么玩ChatGPT
随着 ChatGPT、GPT-4 等大型语言模型(LLM)的出现,提示工程(Prompt Engineering)变得越来越重要。很多人将 prompt 视为 LLM 的咒语,其好坏直接影响模型输出的结果。
机器之心
2023/12/20
1.3K0
OpenAI官方的Prompt工程指南:你可以这么玩ChatGPT
OpenAI官方提示词教程与实战指南
该指南分享了获取更好结果的策略和战术,适用于像GPT-4这样的大型语言模型(有时也称为GPT模型)。这里描述的方法有时可以组合使用以获得更好的效果。我们鼓励进行试验,找到最适合您的方法。
山行AI
2023/12/28
9210
OpenAI官方提示词教程与实战指南
Prompt进阶2:LangGPT(构建高性能Prompt策略和技巧)--最佳实践指南
左图右图 prompt 基本是一样的,差别只在提示工程这个词是否用中英文表达。我们看到,一词之差,回答质量天壤之别。为了获得理想的模型结果,我们需要调整设计提示词,这也就是所谓的提示工程。
汀丶人工智能
2024/03/13
5210
Prompt进阶2:LangGPT(构建高性能Prompt策略和技巧)--最佳实践指南
GPT-4最全攻略来袭!OpenAI官方发布,六个月攒下来的使用经验都在里面了
不仅普通GPT-4用户可以在这份秘籍中get提示技巧,或许应用开发者也可以找到些许灵感。
量子位
2023/08/03
3500
GPT-4最全攻略来袭!OpenAI官方发布,六个月攒下来的使用经验都在里面了
提示词(prompt)工程指南(一):提示介绍
提示工程是一种相对较新的学科,专门用于开发和优化提示,以高效地使用语言模型(LM)来处理各种应用和研究主题。提示工程技能有助于更好地理解大型语言模型(LLMs)的能力和局限性。研究人员使用提示工程来提高LLMs在各种常见和复杂任务上的容量,例如问题解答和算术推理。开发人员使用提示工程来设计与LLMs和其他工具接口的强大而有效的提示技术。
云微
2023/03/31
2.3K0
提示词(prompt)工程指南(二):基本提示
通常,学习概念的最佳方法是通过示例进行。下面我们将涵盖一些精心制作的提示示例,以执行各种有趣和不同的任务。
云微
2023/03/31
2.6K0
Prompt工程师指南从基础到进阶篇:用于开发和优化提示,以有效地使用语言模型(LMs)进行各种应用和研究主题
Prompt工程是一种相对较新的学科,用于开发和优化提示,以有效地使用语言模型(LMs)进行各种应用和研究主题。Prompt工程技能有助于更好地理解大型语言模型(LLMs)的能力和局限性。研究人员使用Prompt工程来改善LLMs在各种常见和复杂任务上的能力,
汀丶人工智能
2023/05/14
3.7K1
Prompt工程师指南从基础到进阶篇:用于开发和优化提示,以有效地使用语言模型(LMs)进行各种应用和研究主题
生产级RAG系统一些经验总结
本文将探讨如何使用最新技术构建生产级检索增强生成(RAG)系统,包括健壮的架构、向量数据库(Faiss、Pinecone、Weaviate)、框架(LangChain、LlamaIndex)、混合搜索、重排序器、流式数据接入、评估策略以及实际部署技巧。
致Great
2025/05/02
1670
提示工程(prompt engineering):技术分类与提示词调优看这篇就够了
在人工智能盛起的当下,出现了一个新兴的行业——提示工程(prompt engineering)。提示词,简言之,就是我们和AI说的话。在人机交互模式下,一个好的提示词,往往能产生事半功倍的效果。文本领域,好的提示词往往能超越RAG/Agent所能发挥的能力;图片对应的视觉领域,好的提示词往往能产生更好地图片/视觉效果。
山行AI
2024/04/30
4.6K0
提示工程(prompt engineering):技术分类与提示词调优看这篇就够了
Prompt提示工程上手指南:基础原理及实践(二)-Prompt主流策略
上篇文章将Prompt提示工程大体概念和具体工作流程阐述清楚了,我们知道Prompt工程是指人们向生成性人工智能(AI)服务输入提示以生成文本或图像的过程中,对这些提示进行精炼的过程。生成人工智能是一个根据人类和机器产生的数据训练的机器人,它不具备筛选你正在交流的内容以理解你实际在说什么的能力。也就是说你说的就是你得到的。那么我们使用Prompt在不进行高成本的调参,显得尤为重要,因此有很多Prompt策略适用于不同的语言大模型中,在图像大模型中Prompt策略可谓是核心必学科目了。那么本章我们将了解Prompt主流策略有什么。
fanstuck
2024/02/05
1.3K0
Prompt提示工程上手指南:基础原理及实践(二)-Prompt主流策略
解读提示工程(Prompt Engineering)
提示工程(Prompt Engineering),也称为上下文提示,是一种通过不更新模型的权重/参数来引导LLM行为朝着特定结果的方法。这是与AI有效交流所需结果的过程。提示工程可以用于各种任务,从回答问题到算术推理乃至各种应用领域,理解提示工程,能够帮助我们了解LLM的限制和能力。
半吊子全栈工匠
2023/10/23
9.3K0
解读提示工程(Prompt Engineering)
GPT 官方最佳实践指南
本指南分享了从 GPT 获得更好结果的策略和战术。有时可以结合使用此处描述的方法以获得更好的效果。我们鼓励进行实验以找到最适合您的方法。
成江东
2023/06/09
1.2K0
GPT 官方最佳实践指南
从菜鸟到大神,Prompt设计的核心秘诀全在这里!
在数字化浪潮的推动下,人工智能大模型凭借其卓越的自然语言处理能力和智能交互特性,正迅速渗透到各行各业。与传统的客服方式相比,AI大模型展现出了显著的优势。通过精心设计的提示语(prompt),我们可以在客服外包、智能客服等多个项目和业务场景中发挥重要作用,显著提高工作效率并优化成果质量。
福大大架构师每日一题
2025/04/02
2900
从菜鸟到大神,Prompt设计的核心秘诀全在这里!
Andrew Ng和OpenAI教你写prompt
在使用LLM的时候可以将其当作一个很全能,但不知道做什么的助手,如果LLM效果不好,可能是由于指令不够清楚。
用户3578099
2023/09/01
3300
Andrew Ng和OpenAI教你写prompt
[AI OpenAI-doc] 微调
OpenAI 的文本生成模型已经在大量文本上进行了预训练。为了有效地使用这些模型,我们在提示中包含了说明和有时几个示例。使用示例来展示如何执行任务通常被称为 "少样本学习"。
从零开始学AI
2024/04/20
2480
[AI OpenAI-doc] 微调
RAG七十二式:2024年度RAG清单
回顾2024,大模型日新月异,智能体百家争鸣。作为AI应用的重要组成部分,RAG也是“群雄逐鹿,诸侯并起”。年初ModularRAG持续升温、GraphRAG大放异彩,年中开源工具如火如荼、知识图谱再创新机,年末图表理解、多模态RAG又启新征程,简直“你方唱罢我登场”,奇技叠出,不胜枚举!
AI研思录
2025/02/20
2220
RAG七十二式:2024年度RAG清单
Prompt Engineering 写作准则与应用示例集
如果你有一类问题,可以一直在一个对话框询问,同时进行保存,这样就会记住历史消息,相当于一次【In-context Learning(上下文学习)】
悟乙己
2023/07/09
1.2K0
Prompt Engineering 写作准则与应用示例集
同济大学发布最新检索增强(RAG)的LLM生成技术综述
摘要主要介绍了大型语言模型(LLMs)在实际应用中面临的挑战,比如幻觉、知识更新缓慢和答案缺乏透明度等问题,并提出了检索增强生成(Retrieval-Augmented Generation,RAG)作为一种解决方案。RAG通过从外部知识库检索相关信息来辅助大型语言模型回答问题,已经被证明能显著提高回答的准确性,减少模型产生的幻觉,尤其是在知识密集型任务中。
唐国梁Tommy
2023/12/21
17K0
同济大学发布最新检索增强(RAG)的LLM生成技术综述
不写代码也能年薪百万?Prompt+低代码开发实战
近期 AIGC 狂潮席卷,“前端走向穷途”“低代码时代终结”的言论甚嚣尘上。事实上 GPT 不仅不会干掉低代码,反而会大幅度促进低代码相关系统的开发。本文会介绍 GPT Prompt Engineering 的基本原理,以及如何帮助低代码平台相关技术快速开发落地的技术方案。接着往下看吧~
腾讯云开发者
2023/06/13
1.3K0
不写代码也能年薪百万?Prompt+低代码开发实战
推荐阅读
相关推荐
OpenAI 官方提示工程指南【中文版】
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验