Mybatis分页插件PageHelper的实现


前言

分页这个概念在做web网站的时候很多都会碰到 说它简单吧 其实也简单 小型的网站,完全可以自己写一个,首先查出数据库总条数,然后按照分页大小分为多少页,通过mysql语句里面的limit x,y 完全可以实现 不过有插件就用插件吧 毕竟人家写好的直接拿过来用就好啦 没必要造重复的轮子!


1.依赖Jar包导入或者是添加依赖(Maven项目)

  1. <dependency>
  2. <groupId>com.github.jsqlparser</groupId>
  3. <artifactId>jsqlparser</artifactId>
  4. <version>0.9.5</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>com.github.pagehelper</groupId>
  8. <artifactId>pagehelper</artifactId>
  9. <version>5.1.2</version>
  10. </dependency>

或者导入Jar包后如图所示 pagehelper版本5.12

2.全局配置文件里面加入插件配置信息

  1. <!-- 配置分页插件 -->
  2. <plugins>
  3. <!--自4.0.0版本以后实现这个接口了 com.github.pagehelper.PageInterceptor -->
  4. <plugin interceptor="com.github.pagehelper.PageInterceptor">
  5. <!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->
  6. <!-- 自4.0.0以后的版本已经可以自动识别数据库了,所以不需要我们再去指定数据库 -->
  7. <!--<property name="dialect" value="Mysql"/>-->
  8. </plugin>
  9. </plugins>

3.配置文件结点注意顺序(顺序错误可能会引起错误)

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
  3. <configuration>
  4.  
  5. <!-- 引入外部配置文件 -->
  6. <properties resource="mysql.properties"></properties>
  7.  
  8. <!-- 配置分页插件 -->
  9. <plugins>
  10. <!--自4.0.0版本以后实现这个接口了 com.github.pagehelper.PageInterceptor -->
  11. <plugin interceptor="com.github.pagehelper.PageInterceptor">
  12. <!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->
  13. <!-- 自4.0.0以后的版本已经可以自动识别数据库了,所以不需要我们再去指定数据库 -->
  14. <!--<property name="dialect" value="Mysql"/>-->
  15. </plugin>
  16. </plugins>
  17.  
  18. <!-- 配置mybatis运行环境 -->
  19. <environments default="cybatis">
  20. <environment id="cybatis">
  21. <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
  22. <transactionManager type="JDBC" />
  23. <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
  24. <!-- POOLED 表示支持JDBC数据源连接池 -->
  25. <!-- UNPOOLED 表示不支持数据源连接池 -->
  26. <!-- JNDI 表示支持外部数据源连接池 -->
  27. <dataSource type="POOLED">
  28. <property name="driver" value="${jdbc.driver}" />
  29. <property name="url" value="${jdbc.url}" />
  30. <property name="username" value="${jdbc.username}" />
  31. <property name="password" value="${jdbc.password}" />
  32. </dataSource>
  33. </environment>
  34. </environments>
  35.  
  36. <mappers>
  37. <!-- 1.自动扫描 -->
  38. <package name="cn.mapper" />
  39. <!-- 2.一个个配置 -->
  40. <!--<mapper resource="com/cy/mybatis/mapper/UserMapper.xml"/> -->
  41. </mappers>
  42. </configuration>

4.增加Mapper分页查询接口

  1. package cn.mapper;
  2.  
  3. import java.util.List;
  4.  
  5. import cn.beans.UserBean;
  6.  
  7. public interface UserMapper {
  8.  
  9. List<UserBean> selectAllUser() throws Exception;
  10.  
  11. }

5.配置UserMapper.xml文件

  1. <select id="selectAllUser" resultMap="userMap">
  2. select * from user
  3. </select>

6.书写测试类进行测试

  1. public static void select1() {
  2.  
  3. SqlSession session = DBUtil.getSession();
  4. UserMapper user = session.getMapper(UserMapper.class);
  5.  
  6. try {
           //PageHelper.startPage(pageNum, pageSize) 页码,分页大小
  7. PageHelper.startPage(1, 3);
  8. List<UserBean> list = user.selectAllUser();
  9. for(UserBean bean :list){
  10. System.out.println(bean.getName());
  11. }
  12. session.commit();
  13. } catch (Exception e) {
  14. e.printStackTrace();
  15. session.rollback();
  16. }
  17.  
  18. }

7.测试结果

8.查看数据库所有数据进行比对

9.结语以及易错点提示

1.错误易出现于mybatis.conf.xml全局配置文件中 要注意插件配置的位置,位置不对也会报错!

2.版本问题 4.00版本后pagehelper 接口的位置发生了变化,有些小伙伴在其他网站上看到的接口已经过时了 易出现错误 在一个就是不需要指定数据库了 4.00版本后会自动扫描!

3.每天记录一点,进步一点!


参考:https://blog.csdn.net/maxiao1204/article/details/79937012   https://www.cnblogs.com/shanheyongmu/p/5864047.html

欢迎指正评论,欢迎推荐关注!

转载请注明出处!

Mybatis分页插件PageHelper的实现的更多相关文章

  1. Mybatis分页插件PageHelper的配置和使用方法

     Mybatis分页插件PageHelper的配置和使用方法 前言 在web开发过程中涉及到表格时,例如dataTable,就会产生分页的需求,通常我们将分页方式分为两种:前端分页和后端分页. 前端分 ...

  2. Mybatis分页插件PageHelper使用

    一. Mybatis分页插件PageHelper使用  1.不使用插件如何分页: 使用mybatis实现: 1)接口: List<Student> selectStudent(Map< ...

  3. Java SSM框架之MyBatis3(三)Mybatis分页插件PageHelper

    引言 对于使用Mybatis时,最头痛的就是写分页,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,会发现真不想花双倍的时间写count和select ...

  4. Mybatis学习---Mybatis分页插件 - PageHelper

    1. Mybatis分页插件 - PageHelper说明 如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件. 该插件目前支持Oracle,Mysql,MariaDB,S ...

  5. 基于Mybatis分页插件PageHelper

    基于Mybatis分页插件PageHelper 1.分页插件使用 1.POM依赖 PageHelper的依赖如下.需要新的版本可以去maven上自行选择 <!-- PageHelper 插件分页 ...

  6. Mybatis分页插件-PageHelper的使用

    转载:http://blog.csdn.net/u012728960/article/details/50791343 Mybatis分页插件-PageHelper的使用 怎样配置mybatis这里就 ...

  7. (转)淘淘商城系列——MyBatis分页插件(PageHelper)的使用以及商品列表展示

    http://blog.csdn.net/yerenyuan_pku/article/details/72774381 上文我们实现了展示后台页面的功能,而本文我们实现的主要功能是展示商品列表,大家要 ...

  8. springmvc mybatis 分页插件 pagehelper

    springmvc mybatis 分页插件 pagehelper 下载地址:pagehelper 4.2.1 , jsqlparser 0.9.5 https://github.com/pagehe ...

  9. MyBatis 分页插件PageHelper 后台报错

    今天遇到一个问题,使用MyBatis 分页插件PageHelper 进行排序分页后,能正常返回正确的结果,但后台却一直在报错 net.sf.jsqlparser.parser.ParseExcepti ...

随机推荐

  1. E.Text Editor (Gym 101466E + 二分 + kmp)

    题目链接:http://codeforces.com/gym/101466/problem/E 题目: 题意: 给你s串和t串,一个数k,求t的最长前缀串在s串中出现次数不少于k. 思路: 一眼二分+ ...

  2. JSTL标签库笔记

    1. 概述 JSTL(Jsp Standard Tag Library)即JSP标准标签库,只能运行在支持JSP1.2↑和Servlet2.3↑规范的容器上. 通常情况下我们在编写JSP页面的时候,在 ...

  3. java使用simpleDateFormat格式化日期 时间

    时间日期标识符: yyyy:年 MM:月 dd:日 hh:1~12小时制(1-12) HH:24小时制(0-23) mm:分 ss:秒 S:毫秒 E:星期几 D:一年中的第几天 F:一月中的第几个星期 ...

  4. php上传文件大小限制的方法详解

    打开php.ini,首先找到file_uploads = on ;是否允许通过HTTP上传文件的开关.默认为ON即是开upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就 ...

  5. 1-编程基础及Python环境部署

    目录 1 编程基础 1.1 基本概念 1.2 语言分类 1.3 高级语言的发展 2 程序 3 python的语言介绍 4 Python的解释器 5 Python版本区别 6 Python安装 6.1 ...

  6. Machine Learning系列--EM算法理解与推导

    EM算法,全称Expectation Maximization Algorithm,译作最大期望化算法或期望最大算法,是机器学习十大算法之一,吴军博士在<数学之美>书中称其为“上帝视角”算 ...

  7. selenium滚动到顶部与底部

    #coding=utf-8 from selenium import webdriver #滚动到浏览器顶部 js_top = "var q=document.documentElement ...

  8. Nginx源码分析--epoll模块

    Nginx采用epoll模块实现高并发的网络编程,现在对Nginx的epoll模块进行分析. 定义在src/event/modules/ngx_epoll_module.c中 1. epoll_cre ...

  9. python tornado 中使用 flash消息闪现

    1.html 中引入文件 {% block head %} <link href="/static/common/sweetalert/sweetalert.css" rel ...

  10. python开发web服务器——搭建简易网站

    参看:https://blog.csdn.net/baidu_35085676/article/details/69807145