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类所在包名 --> <plugin interceptor="com.github.pagehelper.PageHelper"> <!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库--> <property name="dialect" value="mysql"/> </plugin> </plugins>
第二步:在代码中使用
1、设置分页信息:
//获取第1页,10条内容,默认查询总数count PageHelper.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条内容,默认查询总数count PageHelper.startPage(1, 10); List<Country> list = countryMapper.selectAll(); //用PageInfo对结果进行包装 PageInfo page = new PageInfo(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
@Test public void testPageHelper() { //创建一个spring容器 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml"); //从spring容器中获得Mapper的代理对象 TbItemMapper mapper = applicationContext.getBean(TbItemMapper.class); //执行查询,并分页 TbItemExample example = new TbItemExample(); //分页处理 PageHelper.startPage(2, 10); List<TbItem> list = mapper.selectByExample(example); //取商品列表 for (TbItem tbItem : list) { System.out.println(tbItem.getTitle()); } //取分页信息 PageInfo<TbItem> pageInfo = new PageInfo<>(list); long total = pageInfo.getTotal(); System.out.println("共有商品:"+ total); }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“Mybatis分页插件的实例详解”评论...
更新日志
2024年05月10日
2024年05月10日
- 《地狱潜者2》鼓励玩家打差评:这样就能和索尼谈判
- 林忆莲《十年珍藏》[WAV分轨][668M]
- 蔡琴《蔡琴经典歌曲合集》[WAV+CUE][502.6MB]
- 群星《十大发烧·靓绝男声》 3CD[APE+CUE][1.1G]
- 彭正.2024-十年【福茂】【FLAC分轨】
- 李健.2005-为你而来【泰达】【WAV+CUE】
- 韩宝仪.2003-柔情恋歌精典2CD【南方】【WAV+CUE】
- 物华弥新迷踪盘第二十六关怎么过 迷踪盘第二十六关通关方法
- 物华弥新迷踪盘第二十七关怎么过 迷踪盘第二十七关通关方法
- 物华弥新迷踪盘第二十五关怎么过 迷踪盘第二十五关通关方法
- 吴克群2015-数星星的人2CD[华纳][WAV+CUE]
- 陈升.2023-望乡【新乐园】【WAV+CUE】
- 群星-雨果唱片-金曲精选II_LPCD45【WAV】
- 《古墓丽影》新作最新细节曝光:劳拉可招募盟友
- Steam为《地狱潜者2》退款 玩家:不愧是PC最大平台