分页插件pageHelpler的使用(ssm框架中)服务器端分页

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

1. maven依赖:

	<!-- 分页插件 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>3.4.2-fix</version></dependency>

2.  在sqlMapConfig.xml中配置:

	<!-- 配置分页插件 --><plugins><plugin interceptor="com.github.pagehelper.PageHelper"><!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->        <property name="dialect" value="mysql"/><!-- 该参数默认为false -->  <!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->  <!-- 和startPage中的pageNum效果一样-->  <property name="offsetAsPageNum" value="true"/>  <!-- 该参数默认为false --> <!-- 设置为true时,使用RowBounds分页会进行count查询 -->  <property name="rowBoundsWithCount" value="true"/>  <!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 -->  <!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->  <!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->  <property name="reasonable" value="true"/>  <!-- 支持通过Mapper接口参数来传递分页参数 -->  <property name="supportMethodsArguments" value="true"/>  <!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->  <property name="returnPageInfo" value="check"/>  </plugin></plugins>

3. 查询sql写法不变,只是不用作分页 :

	<!-- 查询管理员信息 --><select id="selectAuthAdmin" parameterType="AuthAdmin" resultMap="authAdminResultMap">SELECT ID, ACCOUNT,PASSWORD,SALT,ROLE_IDS,ROLE_NAME,RES_IDS,LOCKEDFROM TS_AUTH_ADMIN 		</select>

4.   serviceImpl 中接收从mapper.xml中查到的结果,运用pagehelper分页 。

pagehelper会根据配置确定使用的数据库,自动拦截sql拼上对应分页部分语句再执行sql。

可从控制台查看输入的sql 就是带了分页语句的。

 

参数  pageNum - 第N页, pageSize - 每页M条数

如:PageHelper.startPage(1, 10);   就是第1条到第10条,数据库数据不足10条,就有多少条返回多少条。

	/*** 分页获取用户信息* @param pageNum* @param pageSize* @return* @throws Exception*/@Overridepublic PageInfo<AuthAdmin> selectAuthAdminByPage(Integer pageNum, Integer pageSize ,AuthAdmin adm)throws Exception {PageHelper.startPage(pageNum, pageSize);// 所有用户信息List<AuthAdmin> authAdmins = _authAdminMapper.selectAuthAdmin(adm);if(authAdmins == null){return null;}PageInfo<AuthAdmin> pageInfo = new PageInfo<AuthAdmin>(authAdmins);return pageInfo;}

5.controller中拿到已经分好页的数据 :(在哪得最终数据不重要,controller、service中都可以,只是封装成pageInfo对象后,就从这个对象身上得。)

	// 加载用户列表@ResponseBody@RequestMapping("/adminList")public Object adminList(Model model, int draw, int start, int length ,AuthAdmin adm)throws Exception{_logger.info("++++  展示用户列表  ++++");PageInfo<AuthAdmin> pageInfo = _authAdminService.selectAuthAdminByPage((start/length)+1 ,length ,adm);Map<String, Object> map = new HashMap<String, Object>();List<Object> data = new ArrayList<Object>();for(AuthAdmin admin : pageInfo.getList()){Map<String, Object> obj = new HashMap<String, Object>();obj.put("id", admin.getId());obj.put("account", admin.getAccount());obj.put("locked", admin.getLocked());obj.put("roleIds", admin.getRoleIds());obj.put("roleName", admin.getRoleName());obj.put("resIds", admin.getResIds());data.add(obj);}map.put("draw", draw);map.put("recordsTotal", pageInfo.getTotal());map.put("recordsFiltered", pageInfo.getTotal());map.put("data", data);return map;}


如上图 pageInfo.getList()就可以得到 分页后的数据。 pageInfo.getTotal()可以得到总记录数。

另有一别人的博客讲这个插件的也推荐:http://www.cnblogs.com/xiaoxinwt/p/5329840.html

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

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

相关文章

cvs

cvs 是一个C/S系统&#xff0c;是一个常用的代码版本控制软件。主要在 开源软件 管理中使用。与它相类似的代码 版本控制软件 有 subversion 。多个开发人员通过一个中心版本控制系统来记录文件版本 &#xff0c;从而达到保证文件同步的目的。CVS版本控制系统是一种GNU软件包&a…

学成在线--23.课程图片管理(上传图片)

文章目录一. 需求分析1). 需求分析2). 图片上传流程二. 创建文件系统服务工程1). 工程目录结构2). 项目依赖pom.xml3). 配置文件application.yml三. 后端开发1. 模型类1). 模型类2). Collection2. Api接口3. Dao4. Service5. Controller6. 测试四. 前端开发1. 需求2. 页面1). T…

13个超棒的代码资源网站推荐

很多开发者都有过网站开发的经历&#xff0c;大家使用CSS、HTML以及JavaScript等技术来完成这一工作。但想必大家也知道&#xff0c;网站开发是一个很耗费时间的工作。你可能需要花费大量的时间在一些网站上寻找解决问题的代码段。这的确很耗费时间&#xff0c;但却几乎又是不可…

BZOJ.3052.[WC2013]糖果公园(树上莫队 带修改莫队)

题目链接 BZOJ 当然哪都能交(都比在BZOJ交好)&#xff0c;比如UOJ #58 //67376kb 27280ms //树上莫队带修改莫队 模板题 #include <cmath> #include <cstdio> #include <cctype> #include <cstring> #include <algorithm> //#define gc() get…

Jquery Datatable的使用样例(ssm+bootstrsp框架下)服务器端分页

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 效果&#xff1a; 我这个表格数据 比较少没有第2页 有多例多页的效果&#xff08;带滚动条和翻页&#xff09;&#xff1a; 1. jsp页面…

Hadoop集群(四) Hadoop升级

Hadoop前面安装的集群是2.6版本&#xff0c;现在升级到2.7版本。 注意&#xff0c;这个集群上有运行Hbase&#xff0c;所以&#xff0c;升级前后&#xff0c;需要启停Hbase。 更多安装步骤&#xff0c;请参考&#xff1a; Hadoop集群(一) Zookeeper搭建 Hadoop集群(二) HDFS搭建…

学成在线--24.课程图片管理(保存课程图片)

文章目录一. 需求分析二. 服务端开发1. 模型类2. API3. Dao4. Service5. Controller三. 前端开发1. API2. 页面1). 添加上传成功的钩子 :on-success"handleSuccess"2). 在钩子方法 中保存课程图片信息一. 需求分析 图片上传到文件系统后&#xff0c;其它子系统如果想…

从任意网页上摘取酷炫Jquery效果为自己使用的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 用的chrome 浏览器 2. 随意百度一个漂亮的jquery效果 比如我找到一个可以旋转的多面体效果 3. 再F12选 Resources到如下界面&…

shell基础05 处理用户输入

1. 命令行参数------类似javac 参数1 参数2 类似Java中编译的javac parm1....。在shell中&#xff0c;参数与参数之间用空格隔开。采用位置参数来识别对应的参数值&#xff1a;$0是程序名&#xff0c;$1是第一个参数&#xff0c;以此类推&#xff0c;知道第9个参数$9。对于大…

OpenCV 2.4.0 正式版发布,开源计算机视觉库

OpenCV 于近日发布了 2.4.0 正式版。 OpenCV是一个基于BSD许可证授权发行的跨平台开源计算机视觉库&#xff0c;可以运行在Linux、Windows和Mac OS操作系统上。作为一款简洁而且高效的视觉库&#xff0c;OpenCV由一系列 C 函数和少量 C 类构成&#xff0c;同时提供了Python、Ru…

最小编辑代价-golang

题目&#xff1a; 给定两个字符串str1和str2&#xff0c;在给定三个整数ic,dc和rc,分别代表插入、删除和替换一个 字符&#xff0c;返回将str1编辑成str2的最小代价。 解题方法&#xff1a; 动态规划。首先生成大小为(M1)X(N1)的矩阵dp。 假设str1"avb12cd3", str2&q…

You can't specify target table 'TS_AUTH_ADMIN' for update in FROM clause记录

&#xff11;. 报错&#xff1a;You cant specify target table TS_AUTH_ADMIN for update in FROM clause&#xff0c; 百度查到说是&#xff0c;不能在同一语句中先select出同一表中的某些值,再update这个表 。 我原本的sql是&#xff1a;&#xff08;删除角色的时候&#…

study of javaserver faces lifecycle

JavaServer Faces应用程序的生命周期在客户端为页面发出HTTP请求时开始&#xff0c;并在服务器响应该页面并转换为HTML时结束。 通常将JSF的生命周期分为两个阶段&#xff1a; #执行阶段 #渲染阶段 1.执行阶段 JavaServer Faces应用程序生命周期执行阶段包含以下子阶段&#xf…

从开源软件开发中体会到的心得

Mitchell Hashimoto 是一名开源软件工程师。由他托管到 GitHub 上的 开源项目 Vagrant&#xff0c;是一个用于创建和部署虚拟化开发环境的工具。近日&#xff0c;Mitchell撰文讲述了在开发 Vagrant 的过程中学到的有关开源软件开发的一些心得。 以下为原文文章&#xff1a; 把 …

学成在线--25.课程图片管理(图片查询)

文章目录一. 需求分析二. API三. 服务端开发1. Dao2. Service3. Controller四. 前端开发1. API方法2. 页面一. 需求分析 课程图片上传成功&#xff0c;再次进入课程上传页面应该显示出来已上传的图片。 二. API 在课程管理服务定义查询方法 文件位置&#xff1a;xcEduServic…

redux源码解读

背景 因为就得去实习了。所以打算开始补补坑。比如自己阅读源码的计划。所以今天来聊聊redux的源码。后续会有redux-thunk和react-redux的源码阅读。搞定这些的话&#xff0c;就开始阅读一个node的库的源码了&#xff0c;比如eventproxy和anywhere。 开始 总览, redux的文件结构…

sql语句update中多个case/when的写法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 又如&#xff1a; update xxxx_xxxx set xxx_typeCASE WHEN xxx_type 0 THENYXLX-0WHEN xxx_type 1 THENYXLX-1WHEN xxx_type 2 THE…

Redis-ha(sentinel)搭建

服务器描述&#xff1a;本次搭建是用来测试&#xff0c;所以是在一台服务器上搭建三个redis服务&#xff08;一主两从&#xff09; 服务角色 端口 Redis.conf名称 sentinel配置文件名称 sentinel端口 redis日志路径 sentinel路劲 主(master) 6379 redis.conf sentine…