使用MyBatis+Mysql实现分页的插件PageInfo使用介绍
使用MyBatis+Mysql实现分页的插件PageInfo使用介绍
小马哥_mark 发表于5个月前
使用MyBatis+Mysql实现分页的插件PageInfo使用介绍
  • 发表于 5个月前
  • 阅读 48
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 在程序编写过程中,开发人员无疑会使用到分页查询。为此,已经有很多经过大家验证的好插件供大家使用,省去重复造轮子花费的时间,今天介绍下pageInfo的使用。

使用方法

引入分页插件一共有下面2种方式,推荐使用Maven方式,这种方式方便更新,也是目前主流的依赖管理方式。
 

1. 引入Jar包

 

如果你想使用本项目的jar包而不是直接引入类,你可以在这里下载各个版本的jar包(点击Download下的jar即可下载)

https://oss.sonatype.org/content/repositories/releases/com/github/pagehelper/pagehelper/

http://repo1.maven.org/maven2/com/github/pagehelper/pagehelper/

由于使用了sql解析工具,你还需要下载jsqlparser.jar(这个文件完全独立,不依赖其他):

http://repo1.maven.org/maven2/com/github/jsqlparser/jsqlparser/0.9.1/

http://Git.oschina.NET/free/Mybatis_PageHelper/attach_files

 

2.使用maven


(1)添加如下依赖(发布博客时的版本,可根据实际情况更新版本):

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

(2)在mybatis.xml文件中配置:

<!-- PageHelper分页插件配置 -->  
    <plugins>  
        <!-- com.github.pagehelper为PageHelper类所在包名 -->  
        <plugin interceptor="com.github.pagehelper.PageHelper">  
            <!-- 4.0.0以后版本可以不设置该参数 -->  
            <property name="dialect" value="mysql" />  
            <!-- 该参数默认为false -->  
            <!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->  
            <!-- 和startPage中的pageNum效果一样 -->  
            <property name="offsetAsPageNum" value="true" />  
            <!-- 该参数默认为false -->  
            <!-- 设置为true时,使用RowBounds分页会进行count查询 -->  
            <property name="rowBoundsWithCount" value="true" />  
            <!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->  
            <!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型) -->  
            <property name="pageSizeZero" value="true" />  
            <!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 -->  
            <!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->  
            <!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->  
            <property name="reasonable" value="false" />  
  
            <!-- 支持通过Mapper接口参数来传递分页参数 -->  
            <property name="supportMethodsArguments" value="false" />  
            <!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->  
            <property name="returnPageInfo" value="none" />  
        </plugin>  
    </plugins> 

在Service的实现类中调用Dao中的查询方法时加入一段代码(当前页码,分页大小,排序的列)

public List<ScoreList> getListBySemester(String likeStr,int epage, int pagesize) {  
        // TODO Auto-generated method stub  
        PageHelper.startPage(epage, pagesize,"addtime DESC");  
        return scoreListDao.getListBySemester(likeStr);  
    }  

这样子分页插件会自动在你的查询语句后面添加 order by addtime DESC limit ?,?

后面的两个问号表示从第几条数据开始、查几条数据

(3)最后你在Controller层中加入

PageInfo pageInfo=new PageInfo(list);

后面放入的listcheck就是你service层返回的list集合。
这样PageInfo就会自动给你进行计算分页了。很方便吧,使用的时候有什么问题也可以去他的github存放地址查看wiki说明。

共有 人打赏支持
粉丝 4
博文 17
码字总数 14513
×
小马哥_mark
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: