Mybatis分页插件的示例分析
这篇文章主要介绍Mybatis分页插件的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
Mybatis分页插件的实例详解
1.前言:
我们知道,在MySQL中,分页的sql是使用limit来做,如果我们自己写sql,那分页肯定是没有任何问题的。但是一旦model多了起来,复杂了起来,我们很自然的想到使用mybatis的逆向工程来生成相应的po和mapper,但是同时也会带来弊端,比如这里的分页问题就不好解决了。
可能有人会说,我可以修改生成的文件,没错,这是可行的,但是一般我们通过逆向工程生成的文件,都不会去动它,所以这个时候,就需要使用分页插件来解决了。
如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件。
该插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页。
2.使用方法
第一步:在Mybatis配置xml中配置拦截器插件:
<plugins><!--com.github.pagehelper为PageHelper类所在包名--><plugininterceptor="com.github.pagehelper.PageHelper"><!--设置数据库类型Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库--><propertyname="dialect"value="mysql"/></plugin></plugins>
第二步:在代码中使用
1、设置分页信息:
//获取第1页,10条内容,默认查询总数countPageHelper.startPage(1,10);//紧跟着的第一个select方法会被分页List<Country>list=countryMapper.selectIf(1);
2、取分页信息
//分页后,实际返回的结果list类型是Page<E>,如果想取出分页信息,需要强制转换为Page<E>,Page<Country>listCountry=(Page<Country>)list;listCountry.getTotal();
3、取分页信息的第二种方法
//获取第1页,10条内容,默认查询总数countPageHelper.startPage(1,10);List<Country>list=countryMapper.selectAll();//用PageInfo对结果进行包装PageInfopage=newPageInfo(list);//测试PageInfo全部属性//PageInfo包含了非常全面的分页属性assertEquals(1,page.getPageNum());assertEquals(10,page.getPageSize());assertEquals(1,page.getStartRow());assertEquals(10,page.getEndRow());assertEquals(183,page.getTotal());assertEquals(19,page.getPages());assertEquals(1,page.getFirstPage());assertEquals(8,page.getLastPage());assertEquals(true,page.isFirstPage());assertEquals(false,page.isLastPage());assertEquals(false,page.isHasPreviousPage());assertEquals(true,page.isHasNextPage());
3.TestPageHelper
@TestpublicvoidtestPageHelper(){//创建一个spring容器ApplicationContextapplicationContext=newClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml");//从spring容器中获得Mapper的代理对象TbItemMappermapper=applicationContext.getBean(TbItemMapper.class);//执行查询,并分页TbItemExampleexample=newTbItemExample();//分页处理PageHelper.startPage(2,10);List<TbItem>list=mapper.selectByExample(example);//取商品列表for(TbItemtbItem:list){System.out.println(tbItem.getTitle());}//取分页信息PageInfo<TbItem>pageInfo=newPageInfo<>(list);longtotal=pageInfo.getTotal();System.out.println("共有商品:"+total);}
以上是“Mybatis分页插件的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。