mybats 分页插件 pageHelper 入门使用示例

mybats 分页插件 pageHelper 入门使用示例

 

1、介绍

mybytis 的分页插件pageHelper是一个非常容易使用的后端分页插件,它的原理是用拦截器对sql语句进行拦截,然后修改从而实现分页的功能。下面通过i哟个简单的例子来看看pageHelper如何上手。

项目开源地址及官方文档 pageHelper官网

 

2、入门示例
 

配置:

  • 添加maven依赖,在pom.xml中加入以下语句
     <!--mybatis的分页插件,pageHelper-->
        <dependency>
          <groupId>com.github.pagehelper</groupId>
          <artifactId>pagehelper</artifactId>
          <version>5.0.0</version>
        </dependency>


     

  • 在spring配置文件中,配置sqlSessionFactory的时候,添加pageHelper插件
     

    
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <property name="configLocation" value="classpath:com/xiao/springMVC/xml/mybatis/mybatis-config.xml"/>
    
            <property name="plugins">
                <array>
                    <bean class="com.github.pagehelper.PageInterceptor">
                        <property name="properties">
                            <!--什么都不配,使用默认的配置-->
                            <value></value>
                        </property>
                    </bean>
                </array>
            </property>
        </bean>

     

使用:

  1. 编写实体类

    package com.xiao.springMVC.bean;
    
    import java.io.Serializable;
    
    public class Car implements Serializable {
        private int carid;
        private String brand;
        private String model;
        private String number;
        private String owner;
        private String phone;
    
        public int getCarid() {
            return carid;
        }
    
        public void setCarid(int carid) {
            this.carid = carid;
        }
    
        public String getBrand() {
            return brand;
        }
    
        public void setBrand(String brand) {
            this.brand = brand;
        }
    
        public String getModel() {
            return model;
        }
    
        public void setModel(String model) {
            this.model = model;
        }
    
        public String getNumber() {
            return number;
        }
    
        public void setNumber(String number) {
            this.number = number;
        }
    
        public String getOwner() {
            return owner;
        }
    
        public void setOwner(String owner) {
            this.owner = owner;
        }
    
        public String getPhone() {
            return phone;
        }
    
        public void setPhone(String phone) {
            this.phone = phone;
        }
    
        @Override
        public String toString() {
            return "Car{" +
                    "carid=" + carid +
                    ", brand='" + brand + '\'' +
                    ", model='" + model + '\'' +
                    ", number='" + number + '\'' +
                    ", owner='" + owner + '\'' +
                    ", phone='" + phone + '\'' +
                    '}';
        }
    }

     

  2. 映射接口CarDao

    package com.xiao.springMVC.dao;
    
    import com.xiao.springMVC.bean.Car;
    
    import java.util.List;
    
    public interface carDao {
        List<Car> getCarList();
    }
    

     

  3. Mapper文件Car.xml(mybatis配置,数据库建表等过程省略)
     

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.xiao.springMVC.dao.carDao">
    
        <select id="getCarList" resultType="com.xiao.springMVC.bean.Car">
            SELECT * FROM car
        </select>
    </mapper>

    (可以发现,使用pageHelper插件,以上的文件与不是用时没有任何区别)
     

  4. 测试类,使用基本的pageHelper功能需要两个参数 当前页和每页的记录数量。

    package com.xiao.springMVC.bean;
    
    import com.github.pagehelper.PageHelper;
    import com.github.pagehelper.PageInfo;
    import com.xiao.dubbo.demo.GetUserInfoByIDService;
    import com.xiao.springMVC.dao.IUser;
    import com.xiao.springMVC.dao.carDao;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class Main {
        public static void main(String[] args) {
            List<Car> cars = new ArrayList<Car>();
            PageInfo pageInfo = ListCar(3,10);
            cars =  pageInfo.getList();
    
            for(Car car:cars){
                System.out.println(car.toString());
            }
            long total = pageInfo.getTotal();
            System.out.println("Total:"+total);
    
    
        }
    
    
    
        public static PageInfo<Car> ListCar(int pageNo,int pageSize){
            //Mapper接口方式的调用
            PageHelper.startPage(pageNo,pageSize);
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
            carDao carMapper = (carDao) context.getBean("carMapper");
            List<Car> carList = carMapper.getCarList();
            PageInfo<Car> pageInfo = new PageInfo<Car>(carList);
            return pageInfo;
    
        }
    
    
    }

     

  5. 运行结果

可以看到,如果按照每页10条数据来算,第三页就应该是21-30这10条数据。

例子结束。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值