后端内存分页PageHelper使用(代码实现)

核心API说明:

PageInfo



//当前页
    private int pageNum;
    //每页的数量
    private int pageSize;
    //当前页的数量
    private int size;

    //由于startRow和endRow不常用,这里说个具体的用法
    //可以在页面中"显示startRow到endRow 共size条数据"

    //当前页面第一个元素在数据库中的行号
    private int startRow;
    //当前页面最后一个元素在数据库中的行号
    private int endRow;
    //总记录数
    private long total;
    //总页数
    private int pages;
    //结果集
    private List<T> list;

    //前一页
    private int prePage;
    //下一页
    private int nextPage;

    //是否为第一页
    private boolean isFirstPage = false;
    //是否为最后一页
    private boolean isLastPage = false;
    //是否有前一页
    private boolean hasPreviousPage = false;
    //是否有下一页
    private boolean hasNextPage = false;
    //导航页码数
    private int navigatePages;
    //所有导航页号
    private int[] navigatepageNums;
    //导航条上的第一页
    private int navigateFirstPage;
    //导航条上的最后一页
    private int navigateLastPage;

首先在pom.xml文件中导入依赖(导入插件的jar包(pagehelper,jsqlparser))

    <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
    <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper</artifactId>
      <version>5.2.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.github.jsqlparser/jsqlparser -->
    <dependency>
      <groupId>com.github.jsqlparser</groupId>
      <artifactId>jsqlparser</artifactId>
      <version>3.2</version>
    </dependency>

1、实体类

package com.hdit.pageHelperDemo.domain;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.log4j.Log4j;

//使用了lambok插件
@Data
public class Goods {
    
    
    private int good_id;
    private String good_name;
    private String good_brand;
    private int category_id;
    private String picture_one;
    private String picture_two;
    private String picture_three;
    private String picture_four;
    private String picture_five;
    private double sale_price;
    private int remaining_count;
    private int good_sales;
    private String good_des;
    private int good_state;

}

2、spring.xml配置文件(配置mybatis 插件)


    <!--  配置sqlSessionFactory  -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="typeAliasesPackage" value="com.hdit.guimeimall.domain"></property>
        
        <!--配置mybatis 插件-->
        <property name="plugins">
            <set>
                <!--配置pageHelper 分页插件-->
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties">
                        <props>
                            <!--方言:-->
                            <prop key="helperDialect">mysql</prop>
                        </props>
                    </property>
                </bean>
            </set>
        </property>
    </bean>

3、mapper接口类

package com.hdit.pageHelperDemo.mapper;

import com.hdit.pageHelperDemo.domain.Goods;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface GoodsMapper {
    
    
    @Select("select * from goods")
    List<Goods> findAllGoods();
}

4、service接口类

package com.hdit.pageHelperDemo.service;

import com.github.pagehelper.PageInfo;
import com.hdit.pageHelperDemo.domain.Goods;

public interface GoodsService {
    
    
    PageInfo<Goods> findGoodsPage(int pageNum,int pageSize);
}

5、service实现类

package com.hdit.pageHelperDemo.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hdit.pageHelperDemo.domain.Goods;
import com.hdit.pageHelperDemo.mapper.GoodsMapper;
import com.hdit.pageHelperDemo.service.GoodsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class GoodsServiceImpl implements GoodsService {
    
    
    @Autowired
    private GoodsMapper goodsMapper;
    @Override
    public PageInfo<Goods> findGoodsPage(int pageNum, int pageSize) {
    
    
        PageHelper.startPage(pageNum,pageSize);
        List<Goods> goodsList= goodsMapper.findAllGoods();
        PageInfo<Goods> pageInfo = new PageInfo<>(goodsList);
        return pageInfo;
    }
}

6、controller类

package com.hdit.pageHelperDemo.controller;

import com.github.pagehelper.PageInfo;
import com.hdit.pageHelperDemo.domain.Goods;
import com.hdit.pageHelperDemo.service.GoodsService;
import com.hdit.pageHelperDemo.util.ResponeseData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class GoodsController {
    
    
    @Autowired
    private GoodsService goodsService;
    @GetMapping("/findGoodsByPage")
    public ResponeseData<PageInfo> findGoodsByPage(Integer pageNum,Integer pageSize){
    
    
        PageInfo<Goods> pageInfo = goodsService.findGoodsPage(pageNum,pageSize);
        //ResponeseData自定义响应数据工具类
        ResponeseData<PageInfo> responeseData = new ResponeseData<>();
        responeseData.setCode(200);
        responeseData.setMess("OK");
        responeseData.setData(pageInfo);
        return responeseData;
    }

}

7、工具类

package com.hdit.pageHelperDemo.util;

import lombok.Data;
import lombok.ToString;

@Data
@ToString
public class ResponseData<T> {
    
    
    private int code;
    private String mess;
    private T data;
}

猜你喜欢

转载自blog.csdn.net/weixin_43605266/article/details/113931611