mybatis如何实现分页功能?

1)原始方法,使用limit,需要自己处理分页逻辑:

对于mysql数据库可以使用limit,如:

select * from table limit 5,10; --返回6-15行

对于oracle数据库可以使用rownum,如:

--如:从表Sys_option(主键为sys_id)中从第10条记录开始检索20条记录,语句如下

SELECT * FROM (SELECT ROWNUM R,t1.* From Sys_option where rownum < 30 ) t2

Where t2.R >= 10

详见:http://www.cnblogs.com/fanyong/p/3351350.html

2)拦截StatementHandler,其实质还是在最后生成limit语句

详见:http://www.cnblogs.com/jcli/archive/2011/08/09/2132222.html

3)使用PageHelper插件,这是目前比较常见的方法:

详见:http://www.cnblogs.com/digdeep/p/4608933.html

时间: 2024-11-09 09:57:24

mybatis如何实现分页功能?的相关文章

Mybatis Generator实现分页功能

Mybatis Generator实现分页功能 分类: IBATIS2013-07-17 17:03 882人阅读 评论(1) 收藏 举报 mybatisibatisgeneratorpage分页 众所周知,Mybatis本身没有提供基于数据库方言的分页功能,而是基于JDBC的游标分页,很容易出现性能问题.网上有很多分页的解决方案,不外乎是基于Mybatis本机的插件机制,通过拦截Sql做分页.但是在像Oracle这样的数据库上,拦截器生成的Sql语句没有变量绑定,而且每次语句的都要去拦截,感觉

spring和mybatis集成,自动生成model、mapper,增加mybatis分页功能

软件简介 Spring是一个流行的控制反转(IoC)和面向切面(AOP)的容器框架,在java webapp开发中使用广泛.http://projects.spring.io/spring-framework/ MyBatis是一个基于Java的数据持久层框架,其原名是iBatis,在升级到3.0版本后,更名为MyBatis.https://github.com/mybatis/mybatis-3/ MyBatis Generator是一个MyBatis的代码生成器,通过配置,可自动生成数据操作

Mybatis无需更改原有代码1分钟完美实现分页功能插件(不服你咬我)

首先,本博文为第三方插件的使用方法.实例,不涉及mybatis提供的interceptor接口及其他源码内容,大神请绕行~~ 背景:新撘工程使用了mybatis3.2.8,想要实现分页查询功能,遂找之,成. 一.为尊重开发人员成果,先上URL. [email protected]:http://git.oschina.net/free/Mybatis_PageHelper(里面已经有很详细的使用说明) GitHub:https://github.com/pagehelper/Mybatis-Pa

MyBatis精通之路之分页功能的实现

MyBatis精通之路之分页功能的实现(数组分页.sql分页.拦截器,RowBounds分页) 原创 2017年04月27日 21:34:48 标签: mybatis / java / j2ee / mysql / 分页 4162 前言:学习hibernate & mybatis等持久层框架的时候,不外乎对数据库的增删改查操作.而使用最多的当是数据库的查找操作, 而当数据库数据过多时,符合查找条件的数据可能也会是很庞大的数据.往往在这个时候,我们都不会希望一次性的将所有的数据一起性读取出来,并且

Java后台管理系统(八):MyBatis分页功能实现

使用Mybatis时,最头痛的就是写分页,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,会发现真不想花双倍的时间写 count 和 select,幸好我们有 pagehelper 分页插件,pagehelper 是一个强大实用的 MyBatis 分页插件,可以帮助我们快速的实现分页功能.那么,接下来我们就来一起体验下吧. 添加依赖 在 kitty-admin pom.xml 文件内添加分页插件依赖包. pom.xml <!-- pagehelp

Mybatis使用之分页

Mybatis使用之分页 一:简介 注:示例基于mysql数据库.Oracle可以自行测试.   使用Mybatis分页主要有两种方式.一种是将分页参数传递到配置文件中.在写sql的时候就做分页.另一种是使用Mybatis的拦截器拦截需要分页的sql语句.重新组装成具有分页功能的sql语句. 分页查询的关键在于查询时需要告诉数据库从第几条开始取.取多少条记录.也就是常用到Page对象(一般是方便传递参数.自己构建的实体类)的pageNumer.pageSize两个主要参数.至于Page对象的总记

Mybatis最入门---分页查询(拦截器分页原理及实现)

[一步是咫尺,一步即天涯] 前文,我们演示了物理分页的Sql实现方式,这种方式使得我们每次在编写查询服务时,不断的重复造轮子.这样的代码实现方式就显得十分的笨拙了.本文是Mybatis分页查询的最后一片内容,我们将介绍基于拦截器的,精巧的实现方式.在阅读这篇文章之前,强烈建议各位看官能够先阅读上文.这样就能对下文我们提及的各种对象及他们之间的关系有一个清晰的关系.好了,废话不多讲,开始我们的正文部分吧. 准备工作: a.操作系统 :win7 x64 b.基本软件:MySQL,Mybatis,SQ

Yii2.0实用功能技巧解密之——分页功能

Yii中的分页功能主要由yii\web: Linkable接口.yii\widgets: LinkPager类和yii\data: Pagination类三个组成. yii\data: Pagination 主要功能是对分页中的参数进行设置,如当前页.每页大小.总页数,总记录数等. yii\widgets: LinkPager 主要是根据yii\data: Pagination类所提供的参数生成前台页面的分页html代码. 使用:先在action里面生成分页对象,然后在前台的LinkPager中

网页分页功能的实现

最近在学习JavaWeb的时候,用到了分页功能,现在进行一个记录,以备不时之需 第一步:先完成分页Bean的编写. 就是对当前页数,每页显示的记录数,总记录数,总页数,分页显示的信息进行封装.作为通用的分页功能的实现,这里用到了泛型 import java.util.List; /** * 分页封装 * */ public class PageBean<T> { private int currPage;//当前页数 private int pageSize;//每页显示记录数 private