引言:

PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库, 例如mysql、 oracle、mariaDB、 DB2、 SQLite、Hsqldb等。今天墨白就给大家聊聊PageHelper这款分页插件,下面是PageHelper开源地址,感兴趣的小伙伴可以去看一下

PageHelper在 github 的项目地址:

1https://github.com/pagehelper/Mybatis-PageHelper

PageHelper在 gitosc 的项目地址:

1 http://git.oschina.net/free/Mybatis_PageHelper>

先介绍一下这款插件PageHelper

官网地址:

1https://pagehelper.github.io/

访问官网后的页面,官网里面有详细的Demo,今天我们来照着官网自己动手敲个Demo;

如何使用PageHelper?

1.在自己的项目添加依赖,maven项目在父工程添加最新版本,最新版本是5.1.8

1

2 com.github.pagehelper

3 pagehelper

4 5.1.8

5

2.在数据访问层Spring 配置文件中配置拦截器插件,代码如下

1

2

3

4

5

6

7

8

9 helperDialect=mysql

10 reasonable=true

11

12

13

14

15

16

3.PageHelper分页插件参数介绍

这里我只介绍两个常用的,详细的可以去看官网API文档

helperDialect:

分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。 你可以配置helperDialect属性来指定分页插件使用哪种方言。配置时,可以使用下面的缩写值

1oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby

特别注意:使用 SqlServer2012 数据库时,需要手动指定为 sqlserver2012,否则会使用 SqlServer2005 的方式进行分页。你也可以实现 AbstractHelperDialect,然后配置该属性为实现类的全限定名称即可使用自定义的实现方法。

reasonable:

分页合理化参数,默认值为false。当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页。默认false 时,直接根据参数进行查询。

4.在代码中使用的两种方式:

第一种

1// 此语句后的第一个select查询自动会被分页

2PageHelper.startPage(1, 10);

3// 这里的查询会自动分页

4List list = countryMapper.selectIf(1);

第二种

1//获取第1页,10条内容,默认查询总数count

2PageHelper.startPage(1, 10);

3List list = countryMapper.selectAll();

4//用PageInfo对结果进行包装

5PageInfo page = new PageInfo(list);

6//测试PageInfo全部属性

7//PageInfo源码中可以看到包含了非常全面的分页属性

8assertEquals(1, page.getPageNum());

9assertEquals(10, page.getPageSize());

10assertEquals(1, page.getStartRow());

11assertEquals(10, page.getEndRow());

12assertEquals(183, page.getTotal());

13assertEquals(19, page.getPages());

14assertEquals(1, page.getFirstPage());

15assertEquals(8, page.getLastPage());

16assertEquals(true, page.isFirstPage());

17assertEquals(false, page.isLastPage());

18assertEquals(false, page.isHasPreviousPage());

19assertEquals(true, page.isHasNextPage());

使用PageHelper

配置好了上面的坐标和Spring配置文件以后,我们直接开始使用PageHelper,每个人的表数据可能都不一样,大家根据需求自己来玩,代码如下

Mapper接口

1/**

2 * CompanyMapper接口

3*/

4public interface CompanyMapper {

5 //查询全部

6 List findAll();

7}

Mapper映射

1

2

3 select * from ss_company where companyId=#{companyId}

4

Service接口

1public interface CompanyService {

2 // 分页查询

3 PageInfo findByPage(int pageNum, int PageSize);

4 //查询所有

5 List findAll();

6}

impl实现

1 // 注入Mapper

2 @Autowired

3 private CompanyMapper companyMapper;

4

5@Override

6public PageInfo findByPage(int pageNum, int pageSize) {

7 // 开始分页, PageHelper组件会自动对其后的第一条查询查询分页

8 PageHelper.startPage(pageNum,pageSize);

9 // 调用dao查询

10 List list = companyMapper.findAll();

11 // 创建PageInfo对象封装分页结果,传入查询集合。会自动计算分页参数

12 PageInfo pageInfo = new PageInfo<>(list);

13 return pageInfo;

14}

单元测试

1@RunWith(SpringJUnit4ClassRunner.class)

2@ContextConfiguration("classpath*:spring/applicationContext-*.xml")

3public class UserServiceImplTest {

4 // 注入service

5 @Autowired

6 private CompanyService companyMapper;

7

8 @Test

9 public void findByPage(){

10 PageInfo pageInfo = companyMapper.findByPage(1, 2);

11 System.out.println(pageInfo);

12 }

13}

测试结果:

控制器:每个人的Controller都不一样,我这里给个模板你们,不明白的可以在后台留言,或者是在群里提问,

仅作参考:

1 @Autowired

2 private CompanyService companyService;

3

4 @RequestMapping("/***")

5 public ModelAndView findByPage(

6 @RequestParam(defaultValue = "1") int pageNum,

7 @RequestParam(defaultValue = "5") int pageSize) {

8

9 ModelAndView mv = new ModelAndView();

10 mv.addObject("pageInfo",pageInfo);

11 mv.setViewName("详情列表");

12 return mv;

13 }

14}

今天的内容就到这里了,加油!!!明天见

本文由公众号【框架师 ,ID:mohu121】首发,转载请注明出处

pagehelper插件oracle,带你学习最简单的分页插件PageHelper相关推荐

  1. vue2.0分页插件官方_Vue 2的最佳和完整分页插件

    vue2.0分页插件官方 vuejs-uib分页 (vuejs-uib-pagination) Best and complete pagination plugin for Vue.js. Insp ...

  2. PageHelper分页插件使用 及原理

    1. PageHelper简介 一款很好用的 分页插件,支持多种数据库,拿来即用 2.环境 springboot 2.7.1. jdk11.pagehelper1.4.2 3. PageHelper ...

  3. springboot2.0.5集成mybatis(PageHelper分页插件、generator插件使用)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/zab635590867/article ...

  4. SSM整合两种配置方式——xml和javaConfig,添加分页插件pageHelper和通用Mapper

    Spring MVC配置 1. xml方式 web.xml <?xml version="1.0" encoding="UTF-8"?> <w ...

  5. MyBatis 分页插件

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 1.分页插件使用步骤 2.分页插件的使用 总结 前言 mybatis学习记录 12. MyBatis 分页插件 提示: ...

  6. MyBatis的逆向工程、QBC查询(分页插件)

    目录 1.创建逆向工程的步骤 a>添加依赖和插件 b>创建MyBatis的核心配置文件 c>创建逆向工程的配置文件 d>执行MBG插件的generate目标 2.QBC查询 分 ...

  7. Mybatis分页插件更新

    分页插件演示:http://blog.csdn.net/isea533/article/details/23831273 分页插件演示样例:http://blog.csdn.net/isea533/a ...

  8. Mybatis中的分页插件

    目录 一.为什么要使用分页插件? 二.分页常用标签 三.分页插件的使用 1.在mybatis的pom中添加分页插件依赖 2.在mybatis-config.xml中创建分页插件 3.在test文件中进 ...

  9. WordPress分页插件:WP-PageNavi

    我已经有N多年没有用过WordPress分页插件了,毕竟现在很多主题都是自带分页功能的,自己根本不用担心,由于帮朋友用wordpress做一个企业定制网站,我不得又重新用上了WordPress分页插件 ...

最新文章

  1. SAP Payment Terms 付款条件
  2. Beta阶段第二次冲刺
  3. Redis进阶-Redis对于过期键的三种清除策略
  4. websocket协议
  5. Python3文件操作:with...open的使用代码示例
  6. php 子网掩码正则,验证子网掩码正则表达式代码范例
  7. c语言编写两个矩阵的乘积,如何用c语言编写两个模糊矩阵相乘的程序?
  8. golang mysql封装_golang如何封装路由
  9. 好朋友的爬虫共享资料,真佩服
  10. python总结与思考_学Python很久但是一直无法提升!你有思考过究竟是为什么吗?...
  11. 天翼云服务器怎么重装系统,天翼云操作系统介绍
  12. ibm服务器开机显示如何设置,IBM服务器开机进入WEBBIOS界面配置RAID
  13. JDK 8 之 Stream sorted() 示例
  14. ellipsize属性
  15. 手机上流行的各类谜语(大揭密)
  16. UI界面布局有哪些?
  17. 盘点系外行星中五大最有可能的宜居星球
  18. 关于 爬虫使用 urllib.urlopen 提交默认 User-Agent值
  19. qq 浏览器不支持java_各种浏览器开启JavaScript脚本方法
  20. php采集新闻数据插入数据库,PHP采集www.php.cn的文章,并存入数据库。

热门文章

  1. C#利用反射实现实体类ListT索引器
  2. wps的计算机在哪里设置密码,wps文件怎么设置和取消密码 wps文件密码设置和取消的步骤方法...
  3. java的复制构造函数_什么是Java中的复制构造函数?
  4. 谷歌发布最新版安卓Android,谷歌发布安卓 9 正式版,代号 Android Pie
  5. 串口工具securecrt_SecureCRT配置华为交换机部分命令
  6. python代码没有反应_没有任何编程经验者不要被Python简明手册误导。
  7. html设计动画小黄人,CSS3实现可爱的小黄人动画
  8. 如果用户计算机已接入,01计算机基础知识题(50道)
  9. java参数注解pam_吃透Java基础十:注解
  10. php 生成dbf,php 读取vfp 8.0,9.0所产生的dbf文件