核心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;
}