Mybaits 基于pagehelper分页插件

一、实现原理

 

 

二、实现步骤

 

1.导入相应的jar 包

   pagehelper-3.4.2.jar

  

  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>

 

 3.在代码中使用

    a、设置分页信息:

    //获取第1页,10条内容,默认查询总数count

    PageHelper.startPage(1, 10);

 

    //紧跟着的第一个select方法会被分页

   List<Country> list = countryMapper.selectIf(1);

 

   b、取分页信息

   //分页后,实际返回的结果list类型是Page<E>,如果想取出分页信息,需要强制转换为  Page<E>,

   Page<Country> listCountry = (Page<Country>)list;

   listCountry.getTotal();

 

   c、取分页信息的第二种方法

  //获取第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());

 

四、java测试类的例子

 

 

  //创建spring 容器对象

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml");

//从 spring 容器中取出 Mapper 对象

TbItemMapper itemMapper = applicationContext.getBean(TbItemMapper.class);

 

//执行查询,并分页

TbItemExample example = new TbItemExample();

//分页

PageHelper.startPage(1,10);

List<TbItem> list = itemMapper.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);

 

注:如果用Mybaits 逆向工程生成的 Mapper时,使用此分页插件时,不能使用带查询,否则会起冲突,

 

解决方法

1、自己写Mapper 文件

2、修改 pagehelper jar包(这边上传的pagehelper jar是传智播客视频中提供的已修改的pagehelper jar包,可以兼容逆向工程的Mapper与待条件查询)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值