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

心已赠人 2022-05-18 00:34 151阅读 0赞

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

1、介绍

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

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

2、入门示例

配置:

  • 添加maven依赖,在pom.xml中加入以下语句

    1. <!--mybatis的分页插件,pageHelper-->
    2. <dependency>
    3. <groupId>com.github.pagehelper</groupId>
    4. <artifactId>pagehelper</artifactId>
    5. <version>5.0.0</version>
    6. </dependency>
  • 在spring配置文件中,配置sqlSessionFactory的时候,添加pageHelper插件
  1. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  2. <property name="dataSource" ref="dataSource"/>
  3. <property name="configLocation" value="classpath:com/xiao/springMVC/xml/mybatis/mybatis-config.xml"/>
  4. <property name="plugins">
  5. <array>
  6. <bean class="com.github.pagehelper.PageInterceptor">
  7. <property name="properties">
  8. <!--什么都不配,使用默认的配置-->
  9. <value></value>
  10. </property>
  11. </bean>
  12. </array>
  13. </property>
  14. </bean>

使用:

  1. 编写实体类

    1. package com.xiao.springMVC.bean;
    2. import java.io.Serializable;
    3. public class Car implements Serializable {
    4. private int carid;
    5. private String brand;
    6. private String model;
    7. private String number;
    8. private String owner;
    9. private String phone;
    10. public int getCarid() {
    11. return carid;
    12. }
    13. public void setCarid(int carid) {
    14. this.carid = carid;
    15. }
    16. public String getBrand() {
    17. return brand;
    18. }
    19. public void setBrand(String brand) {
    20. this.brand = brand;
    21. }
    22. public String getModel() {
    23. return model;
    24. }
    25. public void setModel(String model) {
    26. this.model = model;
    27. }
    28. public String getNumber() {
    29. return number;
    30. }
    31. public void setNumber(String number) {
    32. this.number = number;
    33. }
    34. public String getOwner() {
    35. return owner;
    36. }
    37. public void setOwner(String owner) {
    38. this.owner = owner;
    39. }
    40. public String getPhone() {
    41. return phone;
    42. }
    43. public void setPhone(String phone) {
    44. this.phone = phone;
    45. }
    46. @Override
    47. public String toString() {
    48. return "Car{" +
    49. "carid=" + carid +
    50. ", brand='" + brand + '\'' +
    51. ", model='" + model + '\'' +
    52. ", number='" + number + '\'' +
    53. ", owner='" + owner + '\'' +
    54. ", phone='" + phone + '\'' +
    55. '}';
    56. }
    57. }
  1. 映射接口CarDao

    1. package com.xiao.springMVC.dao;
    2. import com.xiao.springMVC.bean.Car;
    3. import java.util.List;
    4. public interface carDao {
    5. List<Car> getCarList();
    6. }
  1. Mapper文件Car.xml(mybatis配置,数据库建表等过程省略)
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <mapper namespace="com.xiao.springMVC.dao.carDao">
  5. <select id="getCarList" resultType="com.xiao.springMVC.bean.Car">
  6. SELECT * FROM car
  7. </select>
  8. </mapper>
  9. (可以发现,使用pageHelper插件,以上的文件与不是用时没有任何区别)
  1. 测试类,使用基本的pageHelper功能需要两个参数 当前页和每页的记录数量。

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

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

例子结束。

发表评论

表情:
评论列表 (有 0 条评论,151人围观)

还没有评论,来说两句吧...

相关阅读