实现分页查询的思路与代码

2024-04-29 11:38

本文主要是介绍实现分页查询的思路与代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 思维图
    在这里插入图片描述
  • handler层(也就是control层)
    /*** 分页查询* @param keyword* @param pageNum* @param pageSize* @param modelMap* @return*/@RequestMapping("/admin/get/page.html")public String getPageInfo(// 在请求中没有携带对应参数时,使用defaultValue提供默认值// keyword默认使用空字符串,和sql语句配合实现两种情况的适配@RequestParam(value = "keyword",defaultValue = "") String keyword,// PageNum默认值使用1,页面默认显示第一页@RequestParam(value = "pageNum",defaultValue = "1") Integer pageNum,// PageSize默认值使用5@RequestParam(value = "pageSize",defaultValue = "5") Integer pageSize,ModelMap modelMap) {// 调用Service方法获取PageInfo对象PageInfo<Admin> pageInfo = adminService.getPageInfo(keyword, pageNum, pageSize);// 将PageInfo对象存入模型modelMap.addAttribute(CrowdConstant.ATTR_NAME_PAGE_INFO,pageInfo);return "admin-page";}
  • service层
    @Overridepublic PageInfo<Admin> getPageInfo(String keyword, Integer pageNum, Integer pageSize) {// 1.调用PageHelper的静态方法开启分页功能PageHelper.startPage(pageNum,pageSize);// 2.执行查询List<Admin> list = adminMapper.selectAdminBuKeyword(keyword);// 3.封装到PageInfo对象中,并返回return new PageInfo<>(list);}
  • 分页插件的依赖
            <!-- mybatis分页插件 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>4.0.0</version></dependency>
  • mapper层
    <select id="selectAdminBuKeyword" resultMap="BaseResultMap">select id, login_acct, user_pswd, user_name, email, create_timefrom tb_adminwherelogin_acct like concat("%",#{keyword},"%") oruser_name like concat("%",#{keyword},"%") oremail like concat("%",#{keyword},"%")</select>
  • 前端JS
<!-- 分页插件要在jQuery的后面 -->
<link rel="stylesheet" href="css/pagination.css">
<script type="text/javascript" src="jquery/jquery.pagination.js"></script><script type="text/javascript">$(function () {// 调用后面声明的函数对页面导航条进行初始化操作initPagination();});// 生成页码导航条函数function initPagination() {// 获取总记录数var totalRecord = ${requestScope.pageInfo.total};// 声明一个JSON对象存储Pagination要设置的属性var properties = {num_edge_entries: 3,                                // 边缘页num_display_entries: 5,                             // 主体页数callback: pageSelectCallback,                     // 指定用户点击翻页时跳转页码的回调函数items_per_page: ${requestScope.pageInfo.pageSize},     // 每页显示多少条数据current_page: ${requestScope.pageInfo.pageNum - 1}, // 两者开始的下标不一致prev_text: "上一页",                                // 上一页按钮上显示的文本next_text: "下一页"                                 // 下一页按钮上显示的文本};// 生成页码导航条$("#Pagination").pagination(totalRecord,properties);}// 回调函数的含义:声明出来之后不是自己调用,而是交给系统或框架调用// 用户点击页码调用这个函数进行页码跳转// pageIndex是Pagination传给我们那个从0开始的页码,使用的时候要+1function pageSelectCallback(pageIndex,jQuery) {// 根据pageIndex计算得到pageNumvar pageNum = pageIndex + 1;// 跳转页面window.location.href = "admin/get/page.html?pageNum="+pageNum+"&keyword=${param.keyword}";// 由于每一个页码按钮都是超链接,所以在这个函数最后取消超链接的默认行为return false;}</script><tfoot><tr><td colspan="6" align="center"><div id="Pagination" class="pagination"><!-- 此处显示分页 --></div></td></tr>
</tfoot>
  • 需要导入分页相关的css代码
@charset "utf-8";      
.pagination a {text-decoration: none;border: 1px solid #AAE;color: #15B;
}.pagination a, .pagination span {display: inline-block;padding: 0.1em 0.4em;margin-right: 5px;margin-bottom: 5px;
}.pagination .current {background: #26B;color: #fff;border: 1px solid #AAE;
}.pagination .current.prev, .pagination .current.next{color:#999;border-color:#999;background:#fff;
}
  • 导入jquery.pagination.js包网上下载即可
    在这里插入图片描述
    感谢封捷老师,目标思路代码

这篇关于实现分页查询的思路与代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/945983

相关文章

Pytroch实现ResNet

论文: Deep Residual Learning for Image Recognition 网络结构图:     import torch.nn as nnimport mathdef conv3x3(in_planes, out_planes, stride=1):return nn.Conv2d(in_planes, out_planes, kernel_size

网络安全ctf比赛_学习资源整理,解题工具、比赛时间、解题思路、实战靶场、学习路线,推荐收藏!...

对于想学习或者参加CTF比赛的朋友来说,CTF工具、练习靶场必不可少,今天给大家分享自己收藏的CTF资源,希望能对各位有所帮助。 CTF在线工具 首先给大家推荐我自己常用的3个CTF在线工具网站,内容齐全,收藏备用。 1、CTF在线工具箱:http://ctf.ssleye.com/ 包含CTF比赛中常用的编码、加解密、算法。 2、CTF加解密工具箱:http://www.at

滤波器——BoxBlur均值滤波及其快速实现(重要)

动机:卷积核、滤波器、卷积、相关 在数字图像处理的语境里,图像一般是二维或三维的矩阵,卷积核(kernel)和滤波器(filter)通常指代同一事物,即对图像进行卷积或相关操作时使用的小矩阵,尺寸通常较小,常见的有3*3、5*5、7*7等。卷积操作相当于对滤波器旋转180度后的相关操作,如下图所示,但很多滤波器是中心对称的,而且两者运算上可以等价,所以很多时候不太区分。   类“队列”实

盒子(方框)滤波(BoxFilter)原理及C++及Matlab实现

写在前面 盒子滤波是一种非常有用的线性滤波,也叫方框滤波,最简单的均值滤波就是盒子滤波归一化的情况。 应用:可以说,一切需要求某个邻域内像素之和的场合,都有盒子滤波的用武之地,比如:均值滤波、引导滤波、计算Haar特征等等。 优势:就一个字:快!它可以使复杂度为O(MN)的求和,求方差等运算降低到O(1)或近似于O(1)的复杂度,也就是说与邻域尺寸无关了,有点类似积分图吧,但是貌似比积分图更

高斯模糊的原理是什么,怎样在界面中实现?知乎

作者:mpcv 链接:https://www.zhihu.com/question/54918332/answer/142137732 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。   评论区有问到滤波和模糊区别的,那就一步到位,说下几个容易搞混的概念: 滤波(高通、低通、带通、带阻) 、模糊、去噪、平滑等。 看图:   (它们的范围大小以及相互包

【数据结构】红黑树(定义性质、插入、查找、删除)解析+完整代码

3.3 红黑树 3.3.1 定义和性质 为什么发明红黑树? 平衡二叉树和红黑树的时间复杂度相同,但是平衡二叉树的平衡特性容易被破坏,需要频繁调整树的形态。 红黑树RBT:插入/删除很多时候不会破坏红黑特性,无需频繁调整树的形态,即需要调整,也可在常数级时间内完成。 平衡二叉树:适用于以查为主,少插入删除的场景; 红黑树,适用于频繁插入、删除的场景,实用性更强。 定义 红黑树是二

JWT令牌技术实现登录校验

一.简单登录功能 在登录界面中,我们可以输入用户的用户名以及密码,然后点击 "登录" 按钮就要请求服务器,服务端判断用户输入的用户名或者密码是否正确。如果正确,则返回成功结果,跳转至系统首页面。 1.功能开发 1.分析 登录的逻辑就是:接收前端请求传递的用户名和密码 ,然后再根据用户名和密码查询用户信息,如果用户信息存在,则说明用户输入的用户名和密码正确。如果查询到的用户不存在,则说明用户

卷积网络项目:实现识别鲜花四分类对比LeNet5、VGG16、ResNet18、ResNet34分类网络

卷积四分类项目 Gitee传送门 分类目标选取 鲜花 杏花 apricot_blossom桃花 peach_blossom梨花 pear_blossom梅花 plum_blossom 模型选择 卷积 LeNet5VGG16ResNet18ResNet34 以图搜图 获取相似度前10的搜图结果 数据清洗 鲜花四分类 删除非图片文件 删除重复图片 整理

TextView 实现跑马灯效果

<TextViewandroid:clickable="true"android:focusable="true"android:focusableInTouchMode="true"android:marqueeRepeatLimit="3"/> 跑马灯想要跑起来就需要控件获取到焦点,想要获取到焦点clickable、focusable、focusableInTouchMode就需要设置为tr

mysql查询优化索引篇

其实在写这篇文章之前,也对查询优化做过一些设置,但这次则更为具体一点,之前做的无非就是增加查询字段的索引,让select里和where里的内容全部都包含在索引内(覆盖索引不走回表的基本概念),但这次这么做的时候发现了一些问题,这也是我接下来要提到的,而且之前使用的是sqlserver的数据库做的优化,虽然数据量比较大,有1000W多条.但其实创建索引的部分则是我们领导建的,自己则是在查询