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. oracle01--单表查询

    1. 基本(基础)查询 1.1. 基本查询语法 基本查询是指最基本的select语句. [语法] [知识点]如何使用工具进行查询 在plsql developer中打开查询窗口(执行sql语句): 执 ...

  2. 仿阿里云后台管理界面模板html源码——后台

    链接:http://pan.baidu.com/s/1nuH2SPj 密码:ar8o

  3. linux常用函数简单介绍

    mmap函数简介: mmap函数是unix/linux下的系统调用,来看<Unix Netword programming>卷二12.2节对mmap的介绍: The mmap functi ...

  4. mysql的一些规范

    我司的mysql规范,值得牢记 一.禁止内容 表字段类型 不推荐使用enum,set,blob,text等类型 表中所有字段都不能为空,需要设置not null属性,可以给默认值 表的主键列值禁止被更 ...

  5. screen命令使用方法【转】

    在linux的环境中,我们想要在后台持续运行一些脚本,但是又因为关闭这个tty的话,脚本就会中断,这个时候我们就需要screen这个工具的帮助啦! 基础   1 首先先查看下否则有这个工具.如果运行s ...

  6. linux下使用privoxy将socks转为http代理

    此博客不在更新,我的博客新地址:www.liuquanhao.com ----------------------------------------------------------------- ...

  7. C/C++——C语言跳出多重循环方法

    c语言的break语句只能跳出离它最近的一层循环,但是我们有时候需要跳出多层循环,以下有几种跳出多重循环的方法: 1. 使用goto ; i < MAX1; i++) { ; j < MA ...

  8. Linux 不常用命令总结

    1. vim编辑模式下,搜索,/user,跳转下一个,小写的n 2.

  9. StringBuilder基本用法

    //StringBuilder用法 public class StringBuilderTest { public static void main(String[] args) { StringBu ...

  10. IT行业经典面试技巧及方法思路。

    问题1:为什么从上家公司离职?”能说说原因吗? 首先,作为一个从事招聘的HR,并不认为追问面试者为什么从上一家公司离职是个明智的做法起码不应该在面试一开始就抛出这个问题,一个较为明显的原因是因为这会引 ...