首先在pom.xml配置文件中增加相关的插件。

插件地址:https://github.com/pagehelper/Mybatis-PageHelper

        <dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.7</version>
</dependency>

新建一个mybatis-config.xml 的文件:

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration>
<settings>
<!-- 使用jdbc的getGeneratedKeys获取数据库自增主键值 -->
<setting name="useGeneratedKeys" value="true" />
<!-- 使用列别名替换列名 默认:true -->
<setting name="useColumnLabel" value="true" />
<!-- 开启驼峰命名转换:Table {create_time} -> Entity {createTime} -->
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
<!--配置分页插件-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor" />
</plugins> </configuration>

加载mybatis-config.xml文件。

调用:

调用PageHelper插件的方法,它只会对下面的一行代码起作用。

第一个参数是页数,第二个参数是条数,简单来说就是每一页有几条数据。

1、这是一种物理分页(就是直接通过SQL进行在数据库中直接分页,得到的数据就是我们想要分页之后的数据),假设你使用的是mysql数据库,在执行查询语气的时候,它会自动的在sql语法后面加 limit 

物理分页:内存开销比较小,在数据量比较小的情况下效率比逻辑分页还是低,在数据量很大的情况下,建议使用物理分页

测试:

select 语法:

测试类:

打印出来的日志:

(通过日志,第4行,我们可以看出,当我们使用PageHelper.startPage这种物理方法的时候,它是自动在我调用的select后面加上了limit进行了分页查询)

 09:05:37.911 [main] DEBUG com.oukele.dao.CommodityMapper.selectAll_COUNT - ==>  Preparing: SELECT count(0) FROM commodity c LEFT JOIN stock s ON c.stock_id = s.stock_id LEFT JOIN commodity_company cp ON c.commodity_company_id = cp.commodity_company_id
09:05:37.943 [main] DEBUG com.oukele.dao.CommodityMapper.selectAll_COUNT - ==> Parameters:
09:05:38.142 [main] DEBUG com.oukele.dao.CommodityMapper.selectAll_COUNT - <== Total: 1
09:05:38.145 [main] DEBUG com.oukele.dao.CommodityMapper.selectAll - ==> Preparing: select * from commodity c left join stock s on c.stock_id = s.stock_id left join commodity_company cp on c.commodity_company_id=cp.commodity_company_id LIMIT ?
09:05:38.146 [main] DEBUG com.oukele.dao.CommodityMapper.selectAll - ==> Parameters: 3(Integer)
09:05:38.230 [main] DEBUG com.oukele.dao.CommodityMapper.selectAll - <== Total: 3

mybatis 分页插件PageHelper的简单使用的更多相关文章

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

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

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

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

  3. Mybatis分页插件PageHelper的实现

    Mybatis分页插件PageHelper的实现 前言 分页这个概念在做web网站的时候很多都会碰到 说它简单吧 其实也简单 小型的网站,完全可以自己写一个,首先查出数据库总条数,然后按照分页大小分为 ...

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

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

  5. Mybatis分页插件PageHelper使用

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

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

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

  7. 基于Mybatis分页插件PageHelper

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

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

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

  9. springmvc mybatis 分页插件 pagehelper

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

随机推荐

  1. elastic 查询案例Query与Filter + CRUD简单理解 + dynamic mapping + keyword

    1.增 PUT mytest01/external/ { "name": "xiaowei" } curl -XPUT '192.168.1.49:9200/m ...

  2. python的变量 以及操作系统

    变量 : (变量真没有什么好说的) 变: 就是会变化的 量:衡量现实的事物标准 python 中引用 变量值的作用 操作系统:就计算机控制硬件的软件,定义各个硬件的接口给应用软件调用 应用软件:在操作 ...

  3. VBNET 文件信息和目录管理(判断,创建,删除,移动,复制)

    1.判断文件/目录是否存在 Try ' 先判断文件是否存在. If Not File.Exists(TextBox4.Text) Then File.CreateText(TextBox4.Text) ...

  4. Shell初学(五)bash shell的基本功能

    记住,所谓的bash shell 并不单纯指的是shell脚本,其实是Linux系统的所有指令集. shell脚本 只是汇总了指令集到文件,然后按流程和顺序执行. [1]如何查看我们的预设shell ...

  5. 那些年,我们见过的 Java 服务端乱象

    导读 查尔斯·狄更斯在<双城记>中写道:“这是一个最好的时代,也是一个最坏的时代.” 移动互联网的快速发展,出现了许多新机遇,很多创业者伺机而动:随着行业竞争加剧,互联网红利逐渐消失,很多 ...

  6. 01串LIS(固定串思维)--Kirk and a Binary String (hard version)---Codeforces Round #581 (Div. 2)

    题意:https://codeforc.es/problemset/problem/1204/D2 给你一个01串,如:0111001100111011101000,让你改这个串(使0尽可能多,任意 ...

  7. css中的position 的absolute和relative的区别(转)

    我们先来看看CSS3 Api中对position属性的相关定义: static:无特殊定位,对象遵循正常文档流.top,right,bottom,left等属性不会被应用. relative:对象遵循 ...

  8. Git复习(四)之解决冲突

    解决冲突 合并分支往往也不是一帆风顺的 假设:我们从master创建了一个新的分支feature1更改了最后一行提交,我们切换到master分支也更改了最后一行提交,现在,master分支和featu ...

  9. 098、Swarm 如何实现 Failover (Swarm05)

    参考https://www.cnblogs.com/CloudMan6/p/7898245.html   故障是在所难免的,容器可能崩溃,Docker Host 可能宕机,不过幸运的是,Swarm 已 ...

  10. 一次MySQL两千万数据大表的优化过程,三种解决方案

    问题概述 使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死.严重影响业务 ...