分页插件PageHelper

Mybatis分页插件,该插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页,不支持微软数据库

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

<plugins>

    <!-- com.github.pagehelperPageHelper类所在包名 -->

    <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();

  1. 取分页信息的第二种方法

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

 

@Test

      public void testPageHelper() throws Exception {

            //初始化spring容器

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

            //获得Mapper的代理对象

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

            //设置分页信息

            PageHelper.startPage(1, 30);

            //执行查询

            TbItemExample example = new TbItemExample();

            List<TbItem> list = itemMapper.selectByExample(example);

            //取分页信息

            PageInfo<TbItem> pageInfo = new PageInfo<>(list);

            System.out.println(pageInfo.getTotal());

            System.out.println(pageInfo.getPages());

            System.out.println(pageInfo.getPageNum());

            System.out.println(pageInfo.getPageSize());

      }

 

 

    1. Service层

参数:int page ,int rows

业务逻辑:查询所有商品列表,要进行分页处理。

返回值:EasyUIDataGridResult

@Override

      public EasyUIDataGridResult getItemList(int page, int rows) {

           

            //设置分页信息

            PageHelper.startPage(page, rows);

            //执行查询

            TbItemExample example = new TbItemExample();

            List<TbItem> list = itemMapper.selectByExample(example);

            //取分页信息

            PageInfo<TbItem> pageInfo = new PageInfo<>(list);

           

            //创建返回结果对象

            EasyUIDataGridResult result = new EasyUIDataGridResult();

            result.setTotal(pageInfo.getTotal());

            result.setRows(list);

           

            return result;

      }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值