Mybatis分页插件——PageHelper

一、定义


        PageHelper用在mybatis插件里面,可以自动的为最近的sql语句进行分页查询,提供分页的页码size和每页数量num,在查询过程中hi自动的拼接limit关键字,不用再改写sql语句了

        在PageHelper.startPage(); 在启动查询 List 数据的查询之前时,会对最近的一个查询进行起作用,但是对于间隔的查询返回 List的数据,将不会有任何影响

二、快速入门 

第⼀步:引⼊依赖

pom.xml



    com.github.pagehelper
    pagehelper
    5.3.3

第⼆步:在mybatis-config.xml⽂件中配置插件

typeAliases标签下⾯进⾏配置:

mybatis-config.xml


    
    
        
    

第三步:编写Java代码

CarMapper接⼝

List queryCarList();

CarMapper.xml




​
    
  • 关键点:

    • 在查询语句之前开启分⻚功能。

    • 在查询语句之后封装PageInfo对象。(PageInfo对象将来会存储到request域当中。在⻚⾯上展 示。)

PageTest.testPageHelper

@Test
    public void queryPage() throws IOException {
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new                     SqlSessionFactoryBuilder();
        SqlSessionFactory build = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("mybatis-config.xml"));
        SqlSession sqlSession = build.openSession(true);
        CarMapper mapper = sqlSession.getMapper(CarMapper.class);
        //开启分页

        int pageNum=2;
        int pageSize=4;
        PageHelper.startPage(pageNum,pageSize);
        // 执⾏查询语句
        List cars = mapper.queryCarList();
        cars.forEach(new Consumer() {
            @Override
            public void accept(Car car) {
                System.out.println(car);
            }
        });

        // 获取分⻚信息对象
        PageInfo pageInfo = new PageInfo<>(cars, 5);

        System.out.println(pageInfo);


        sqlSession.close();

    }

执行结果如下:

PageInfo{pageNum=2, pageSize=4, size=4, startRow=5, endRow=8, total=11, pages=3, list=Page{count=true, pageNum=2, pageSize=4, startRow=4, endRow=8, total=11, pages=3, reasonable=false, pageSizeZero=false}[Car(id=6, carnum=null, brand=奔驰E, guideprice=null, producetime=null, cartype=null), Car(id=7, carnum=null, brand=奔驰E, guideprice=null, producetime=null, cartype=null), Car(id=8, carnum=null, brand=奔驰E, guideprice=null, producetime=null, cartype=null), Car(id=9, carnum=null, brand=奔驰E, guideprice=null, producetime=null, cartype=null)], prePage=1, nextPage=3, isFirstPage=false, isLastPage=false, hasPreviousPage=true, hasNextPage=true, navigatePages=5, navigateFirstPage=1, navigateLastPage=3, navigatepageNums=[1, 2, 3]}

你可能感兴趣的:(mybatis,java,开发语言)