1.引入分页插件

1.引入Jar包

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

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

2. 在Mybatis配置xml中配置拦截器插件:

    
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

3. 在Mybatis配置xml中配置拦截器插件:

如何在代码中使用

 

首先该分页插件支持以下两种调用方式:

//第一种,RowBounds方式的调用

List<XXX> list = sqlSession.selectList("<-- xxx.xml当中的配置id -->", null, new RowBounds(1, 10));

//第二种,Mapper接口方式的调用,推荐这种使用方式。

//小弟深深感受到了面向接口编程神奇之处。各位大大见笑了。

PageHelper.startPage(1, 10);List<Country> list = countryMapper.selectIf(1);

为何要用此插件?

mybatis提供的分页效率低

Select * from user limit #{p1},#{p2}传统的分页有何不足之处?

Select * from user limit #{p1},#{p2} mybatis内部在看到jdbc的Resultset对象时,用游标定位offset的位置,只处理limit条记录。

场景:当数据库105万条数据,1万1页,我要查第一百页,那就是第1000001到条1010000条,使用这种分页查询,先是查询全部105万条,然后截取所对应页码的记录,效率不行。

主要工作原理是什么?

这个我大体上知道那么回事,真正让我追本溯源现在还没有那个实力。

主要思想:拦截handleResultSets方法来获取最后的处理结果。

如果要在Spring里面集成这个分页插件,请浏览原文。

欢迎指正,欢迎交流