SpringBoot --pagehelper分页

news2025/6/22 18:26:56

目录

1.建立数据库

2.页面显示

3.基本逻辑

4.配置依赖

5.使用pagehelper

6.页面列表

页面

效果

1.建立数据库

create database if not exists my_book;
use my_book;
create table if not exists myBook
(
    id   int primary key auto_increment,
    name varchar(50) not null ,
    img varchar(100)
);

insert into myBook value
    (0, '那年那兔那些事','1.jpg'),
    (0, '三国演义','1.jpg'),
    (0, '水浒传1','1.jpg'),
    (0, '水浒传2','1.jpg'),
    (0, '水浒传3','1.jpg'),
    (0, '水浒传3','1.jpg'),
    (0, '水浒传4','1.jpg'),
    (0, '水浒传5','1.jpg'),
    (0, '水浒传6','1.jpg'),
    (0, '水浒传7','1.jpg'),
    (0, '水浒传8','1.jpg'),
    (0, '水浒传9','1.jpg'),
    (0, '水浒传10','1.jpg'),
    (0, '水浒传11','1.jpg'),
    (0, '水浒传12','1.jpg'),
    (0, '水浒传13','1.jpg'),
    (0, '红楼梦','1.jpg');

2.页面显示

 

cb7e0233dca649ff921f6e1de652f0fd.png

一次会显示全部,为了分页显示,引入pagehelper插件

3.基本逻辑

# 分页逻辑
# limit 0,4 pageIndex,pageSize 每一页开始下标,一页多少行
# 第一页
select *from myBook limit 0,4;
# 第二页
select *from myBook limit 4,4;
# 第三页
select *from myBook limit 8,4;
# 第四页
select from myBook limit 12,4;
# 总结
#每一页开始的下标 (pageIndex-1pageSize
#总共多少页 (total/pageSize+total%pageSize)

4.配置依赖

 

   <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.6</version>
        </dependency>

5.使用pagehelper

查到数据后,需要在页面显示时分页,所以在封装页面时使用分页。

  

@Override
    public PageInfo<Mybook> bookListAll(int pageunm,int pagesize) {
        PageHelper.startPage(pageunm,pagesize);
        List<Mybook> mybooks = mybookDao.bookListAll();
        PageInfo<Mybook> pageInfo = new PageInfo<>(mybooks);
        return pageInfo;
    }

8c418edac8224af48c37e539c3776727.png

6.页面列表

图片显示并且有上一页、下一页、首页、尾页、当前页。

页面

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>列表显示</title>
</head>
<body>
<table border="1px">
    <tr style="color:royalblue;">
        <td style="text-align:center;">序号</td>
        <td style="text-align:center;">书名</td>
        <td style="text-align:center;">图片</td>
    </tr>
    <tr th:each="item:${mybooks.list}">
        <td style="text-align:center;" th:text="${item.id}"></td>
        <td style="text-align:center;" th:text="${item.name}"></td>
        <td style="text-align:center;"><img th:src="@{/file/{header}(header=${item.img})}" width="150px" height="100px"></td>
    </tr>
    <tr>
        <td style="text-align:center;"><a th:if="${mybooks.isFirstPage==false}" th:href="@{/bookList/1}">首页</a>
            <a th:if="${mybooks.hasPreviousPage}"
               th:href="@{/bookList/{pagenum}(pagenum=${mybooks.pageNum}-1)}">上一页</a></td>
        <td style="text-align:center;">当前是第<span th:text="${mybooks.pageNum}"></span>页||总共<span th:text="${mybooks.pages}"></span>页</td>
        <td style="text-align:center;"><a th:if="${mybooks.hasNextPage}" th:href="@{/bookList/{pagenum}(pagenum=${mybooks.pageNum}+1)}">下一页</a>
            <a th:if="${mybooks.isLastPage==false}" th:href="@{/bookList/{pagenum}(pagenum=${mybooks.pages})}">尾页</a></td>
    </tr>
</table>
</body>
</html>

 

效果

f6fe20002da64c468ea2d2aa1d82ac5d.png

d1cd9cbe920c4988b904167441b342f2.png

e1b12f45ad9446e9b7c43046fdcdadad.png

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python(4):函数(命名+参数+内置函数+匿名函数)

文章目录 一、关于*的一些打散功能二、函数的特点和命名规范三、函数的返回值return四、函数的参数1.无参数的函数2.有参数的函数 五、函数的命名空间六、全局变量和局部变量七、函数的作用域以及执行顺序(LEGB)八、递归函数九、常见内置函数十、匿名函数-lambda 一、关于*的一…

c++的学习之路:11、string(3)

昨天写string的时候没有说全&#xff0c;这里就开始接着讲。 目录 一、resize 二、insert 三、erase 一、resize 昨天说这个的时候没有考虑到缩小范围时咋处理&#xff0c;然后发现报错了&#xff0c;接着我调试发现缩小就不能正常执行了&#xff0c;因为用的是strcap所以…

芯片设计围炉札记

文章目录 语言Verilog 和 VHDL 区别 芯片验证 语言 System Verilog的概念以及与verilog的对比 IC 设计软件分析 Verilog 和 VHDL 区别 Verilog HDL 和 VHDL 的区别如下&#xff1a; 语法结构&#xff1a;Verilog的语法结构类似于C语言&#xff0c;而VHDL的语法结构则更接近…

流程图步骤条

1.结构 <ul class"stepUl"> <li class"stepLi" v-for"(item, index) in stepList" :key"index"> <div class"top"> <p :class"{active: currentState > item.key}">{{ item.value }}…

没有公网IP怎么办?

在网络通信中&#xff0c;公网IP是指可以直接访问互联网的IP地址。由于各种原因&#xff0c;有一些用户可能没有自己的公网IP地址。那么没有公网IP的情况下&#xff0c;我们应该怎么办呢&#xff1f; 局域网的限制 我们需要了解局域网的概念。局域网是指在一个相对较小的范围内…

R语言记录过程

如何使用这个函数as.peakData 函数构造过程 出现问题是缺少函数的问题 up不告诉我&#xff0c;这里是代表c,h,o的值&#xff0c;你从里面获取把值&#xff0c;设置成c,h,o就可以了 现在开始测试参数 第一次 startRow : 开始查找数据的第一行。不管startRow的值是多少&#xff…

3D Matching:实现halcon中的find_surface_model

halcon中的三维匹配大致分为两类&#xff0c;一类是基于形状的(Shape-Based)&#xff0c;一类是基于表面的(Surface-Based)。基于形状的匹配可用于单个2D图像中定位复杂的3D物体&#xff0c;3D物体模型必须是CAD模型&#xff0c;且几何边缘清晰可见&#xff0c;使用的相机也要预…

2024年能源环境、材料科学与人工智能国际会议(ICEEMSAI2024)

2024年能源环境、材料科学与人工智能国际会议(ICEEMSAI2024) 会议简介 2024国际能源环境、材料科学和人工智能大会&#xff08;ICEEMSAI 2024&#xff09;主要围绕能源环境、物质科学和人工智慧等研究领域&#xff0c;旨在吸引能源环境、先进材料和人工智能专家学者、科技人员…

虹科Pico汽车示波器 | 免拆诊断案例 | 2011款东风悦达起亚K5车发动机偶尔起动困难

一、故障现象 一辆2011款东风悦达起亚K5车&#xff0c;搭载G4KD发动机&#xff0c;累计行驶里程约为24.5万km。车主反映&#xff0c;第1次起动发动机时偶尔无法起动着机&#xff0c;第2次能够正常起动着机&#xff0c;但发动机故障灯异常点亮。为此在其他维修厂维修过&#xf…

【今日刷题】LeetCode 199.二叉树的右视图(中等)

今日刷题&#xff1a;LeetCode 199.二叉树的右视图&#xff08;中等&#xff09; 题目描述&#xff1a; 给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,…

取证——流量分析2

计算流量包文件的SHA256值是&#xff1f;[答案&#xff1a;字母小写][★☆☆☆☆] 4db1c8f3bfa8e29f294f8581e8cccad6f5b3012387d53ef844f2de6fb9ef1fd6 流量包长度在“640-1279”之间的的数据包总共有多少&#xff1f;[答案&#xff1a;100][★☆☆☆☆] frame.len > 640…

智能时代中的工业应用中前所未有的灵活桥接和I/O扩展功能解决方案MachXO2系列LCMXO2-1200HC-4TG100I FPGA可编程逻辑IC

lattice莱迪斯 MachXO2系列LCMXO2-1200HC-4TG100I超低密度FPGA现场可编程门阵列&#xff0c;适用于低成本的复杂系统控制和视频接口设计开发&#xff0c;满足了通信、计算、工业、消费电子和医疗市场所需的系统控制和接口应用。 瞬时启动&#xff0c;迅速实现控制——启动时间…

23、区间和

区间和 题目描述 假定有一个无限长的数轴&#xff0c;数轴上每个坐标上的数都是0。 现在&#xff0c;我们首先进行 n 次操作&#xff0c;每次操作将某一位置x上的数加c。 接下来&#xff0c;进行 m 次询问&#xff0c;每个询问包含两个整数l和r&#xff0c;你需要求出在区间…

02-结构化程式与自定义函数

视频教程&#xff1a;b站视频【MATLAB教程_台大郭彦甫&#xff08;14课&#xff09;原视频补档】https://www.bilibili.com/video/BV1GJ41137UH/?share_sourcecopy_web&vd_sourc*ed6b9f96888e9c85118cb40c164875dfc 官网教程&#xff1a; MATLAB 快速入门 - MathWorks 中…

Java面试题戏剧

目录 第一幕 、第一场&#xff09;某大厦楼下大门前第二场&#xff09;电梯中第三场&#xff09;走廊中 第二幕、第一场&#xff09;公司前台第二场&#xff09;公司卫生间 第三幕、第一场&#xff09;一场异常面试 第四幕 、第一场&#xff09;大厦楼下门口第二场&#xff09;…

InternVideo2重塑视频理解新标杆,多模态学习引领行业风向

引言&#xff1a;视频理解的新篇章——InternVideo2的介绍 随着视频内容在日常生活中的普及&#xff0c;视频理解技术的重要性日益凸显。视频不仅包含丰富的视觉信息&#xff0c;还蕴含着动态变化和多模态元素&#xff0c;如音频和文本。这些特性使得视频成为一个复杂的数据类型…

【Python】科研代码学习:十七 模型参数合并,safetensors / bin

【Python】科研代码学习&#xff1a;十七 模型参数合并&#xff0c;safetensors / bin 前言解决代码知识点&#xff1a;safetensors 和 bin 的区别&#xff1f;知识点&#xff1a;save_pretrained 还会新增的文件知识点&#xff1a;在保存模型参数时&#xff0c;大小发生了成倍…

【Linux的进程篇章 - 进程终止和进程等待的理解】

Linux学习笔记---008 Linux之fork函数、进程终止和等待的理解1、fork函数1.1、什么是fork?1.2、fork的功能介绍1.3、fork函数返回值的理解1.4、fork函数的总结 2、进程的终止2.1、终止是在做什么&#xff1f;2.2、进程终止的3种情况 3、进程的终止3.1、进程终止的三种情况3.2、…

数据结构-移除元素(简单)

题目描述 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出…

pycharm debug 的时候 waiting for process detach

当你使用pycharm debug或者run的时候&#xff0c;突然出现了点不动&#xff0c;然后一直显示&#xff1a;waiting for process detach 可能是以下问题&#xff1a; 1、需要设置Gevent compatible pycharm一直没显示运行步骤&#xff0c;只是出现waiting for process detach-C…