项目中使用了maven

1 引入jar包

  首先需要引入PageHelper的jar包。 

  如果使用了maven,那么只要在pom.xml中引入该插件即可,引入如下:

  <dependency>  

     <groupId>com.github.pagehelper</groupId>

     <artifactId>pagehelper</artifactId>

     <version>4.1.4</version>

   </dependency>
一定要注意:版本号不能太低,最开始用3点几的时候,报500的错误,不能正确分页。
2.  在sqlMapConfig.xml中配置:
  1. <!-- 配置分页插件 -->
  2. <plugins>
  3. <plugin interceptor="com.github.pagehelper.PageHelper">
  4. <!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->
  5. <property name="dialect" value="mysql"/>
  6. <!-- 该参数默认为false -->
  7. <!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
  8. <!-- 和startPage中的pageNum效果一样-->
  9. <property name="offsetAsPageNum" value="true"/>
  10. <!-- 该参数默认为false -->
  11. <!-- 设置为true时,使用RowBounds分页会进行count查询 -->
  12. <property name="rowBoundsWithCount" value="true"/>
  13. <!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 -->
  14. <!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->
  15. <!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->
  16. <property name="reasonable" value="true"/>
  17. <!-- 支持通过Mapper接口参数来传递分页参数 -->
  18. <property name="supportMethodsArguments" value="true"/>
  19. <!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->
  20. <property name="returnPageInfo" value="check"/>
  21. </plugin>
  22. </plugins>
3 serviceImpl 中接收从mapper.xml中查到的结果,运用pagehelper分页
example:   

public TbResult getArticleByType(String type,int pageNumber, int pageSize) {
                       TbArticleExample example = new TbArticleExample(); 
                       Criteria criteria = example.createCriteria();
                       criteria.andTypeEqualTo(type);
                       PageHelper.startPage(pageNumber, pageSize);
                       List<TbArticle> art = articleMapper.selectByExampleWithBLOBs(example);
                       PageInfo<TbArticle> pageInfo = new PageInfo<>(art);
                       TbResult result =new TbResult();
                       result.setRows(art);
                       result.setTotal(pageInfo.getTotal());
                       return result;
         }

可以看出 PageHelper.startPage(pageNumber, pageSize);是在执行sql前出现, PageInfo 其实是已经分完的结果,我这里是把结果又分装到了一个TbResult类中,后来发现不需要这么写。pageInfo.getList()就是art ,所以其实直接返回pageInfo就行。

4  在Controller层接收结果就可以了

SSM+PageHelper 使用的更多相关文章

  1. ssm+PageHelper实现分页查询

    通过搭建ssm框架,然后通过mybatis的分页插件pagehelp进行分页查询.源码:https://gitee.com/smfx1314/pagehelper 看一下项目结构: 首先创建一个mav ...

  2. SSM+PageHelper+jqGrid实现数据分页

    前言 前几天自己写了一个分页功能,代码逻辑写的很乱今天发现jqGrid这个工具是真好用,故记录下来方便以后使用首先是PageHelper后台分页工具PageHelper的原理是基于拦截器实现的 具体流 ...

  3. SSM+pagehelper分页

    1.maven依赖 <dependency> <groupId>com.github.jsqlparser</groupId> <artifactId> ...

  4. EasyUI_使用datagrid分页 (Day_28)

    本次分页涉及技术点 SSM+PageHelper+DatagrId 先来看下效果: 这是无条件分页,下一篇博客我们将讲有条件分页. 无论你是使用js加载table 还是直接使用标签. 使用datagr ...

  5. ssm+maven+pageHelper搭建maven项目实现快速分页

    ssm+maven+pageHelper搭建maven项目实现快速分页 PageHelper分页使用: 插件的环境引入: 1.pom文件中引入分页插件的资源位置: <dependency> ...

  6. 关于在SSM框架下使用PageHelper

    首先,如果各位在这块配置和代码有什么问题欢迎说出来,我也会尽自己最大的能力帮大家解答 这些代码我都是写在一个小项目里的,项目的github地址为:https://github.com/Albert-B ...

  7. PageHelper分页实战(SSM整合)

    步骤一:引入SSM相关的jar包,包列表如下: 步骤二:创建或修改配置文件,配置文件清单如下: applicationContext.xml <?xml version="1.0&qu ...

  8. SSM框架手动实现分页逻辑(非PageHelper)

    第一种方法:查询出所有数据再分页 分析: 分页时,需要获得前台传来的两个参数,分别为pageNo(第几页数据),pageSize(每页的条数); 根据这两个参数来计算出前端需要的数据是查出数据list ...

  9. SSM手动实现分页逻辑---非PageHelper方式

    第一种方法:查询出所有数据再分页 分析: 分页时,需要获得前台传来的两个参数,分别为pageNo(第几页数据),pageSize(每页的条数); 根据这两个参数来计算出前端需要的数据是查出数据list ...

随机推荐

  1. 一些重温CSS需要注意的小细节

    <!-- CSS是用于描述页面展示的语言 字体.颜色.大小.间距,将内容分为多列 或者简单的动画及其他的装饰效果 决定了长啥样 html房子的骨架 css负责装修 怎么装修一个房子呢? 首先就是 ...

  2. (ROT-13解密)Flare-On4: Challenge1 login.html

    说是FlareOn的逆向 倒不如说是crypto....... 题目不难 F12看源码: document.getElementById("prompt").onclick = f ...

  3. 索引之----mysql联合索引

    重要概念: 1.对于mysql来说,一条sql中,一个表无论其蕴含的索引有多少,但是有且只用一条. 2.对于多列索引来说(a,b,c)其相当于3个索引(a),(a,b),(a,b,c)3个索引,又由于 ...

  4. 剑指Offer编程题(Java实现)——链表中环的入口结点

    题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null. 思路一 迭代遍历链表,利用HashSet将每个结点添加到哈希表中,如果添加失败(重复遍历了这个结点即遇到环),输出 ...

  5. 洛谷 P2196 挖地雷 & [NOIP1996提高组](搜索,记录路径)

    传送门 解题思路 就是暴力!!! 没什么好说的,总之,就是枚举每一个起点,然后暴力算一遍以这个点为起点的所有路径,在算的过程中,只要比目前找到的答案更优,就有可能是最后的答案,于是就把路径更新一遍,保 ...

  6. linux下的变量规则

    1.变量名可以由字母.数字和下划线组成,但是不能以数字开头: 2.变量在命名时,默认情况下为字符型: 3.为变量赋值时,等号两边不能有空格: 4.如果要增加变量的值,可以进行变量的叠加,不过需要将变量 ...

  7. Java关于继承中的内存分配

    1.定义         super:当前对象的父类对象         this   :当前对象,谁调用this所在的方法,this就是哪一个对象.   2.内存分析 另一个例子: public s ...

  8. java的idea项目文件夹合并,怎么分开

    一,如下图所示 二,只需要将这个去掉

  9. phpstorm配置成sublime的代码高亮逼格风格

    使用sublime text3的风格来编程感觉是相当逼格的,然而在php的时候还是觉得phpstorm用起来更顺手一点. 正好在phpstorm中也有配置sublime类似风格的插件,这里来教大家如何 ...

  10. 前端校招知识体系之HTML5

    啥是HTML5?官方说HTML5 是下一代的 HTML... 本文主要介绍HTML5三个方面的知识,继续往下看看吧. 语义化标签 canvas&svg 响应式meta 一.语义化标签 语义化标 ...