2021-07-30com.github.pagehelper分页插件

导入依赖

<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper-spring-boot-starter</artifactId>
			<version>${pagehelper.starter.version}</version>
		</dependency>
		<!--分页插件-->
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper</artifactId>
			<version>5.1.10</version>
		</dependency>

MessageCenterController Controller层接收dto参数并返回vo参数

messageCenters.getResult()是Page类中的方法,返回的是一个List类型对象也就是页面元素list集合, messageCenters.getTotal() 返回的是一个long类型对象也就是页面元素的总数量.

public java.util.List<E> getResult() { /* compiled code */ }
 public long getTotal() { /* compiled code */ }
@RestController
@RequestMapping("/admin/messageCenter")
@Slf4j
public class MessageCenterController {

	@Autowired
	private MessageCenterService messageCenterService;

	@ApiOperation("消息中心列表")
	@PostMapping("/list")
	public String queryMessageCenterList(@RequestBody MessageCenterDto messageCenterDto) {
		Page<MessageCenter> messageCenters = null;
		try {
			messageCenters = messageCenterService.queryMessageCenterList(messageCenterDto);
		} catch (Exception e) {
			LogUtils.error(log, e, "获取消息中心列表异常", "", null);
			return ResponseUtil.fail("获取消息中心列表异常");
		}
		//ResponseUtil.appSuccess(rsp,data);
		return ResponseUtil.pageSuccessLAYUI(messageCenters.getResult(), messageCenters.getTotal());
	}

MessageCenterService Service层 分页查询代码

PageHelper 调用静态方法startPage(int pageNum, int pageSize)分页,而Page继承于ArrayList,实际上是一个可封装页面元素的集合.

@Service
public class MessageCenterService extends BaseServiceImpl<MessageCenterMapper, MessageCenter> {
	@Autowired
	private MessageCenterMapper messageCenterMapper;

	public Page<MessageCenter> queryMessageCenterList(MessageCenterDto messageCenterDto) {
		PageHelper.startPage(messageCenterDto.getPageNum() == null ? 0 : messageCenterDto.getPageNum(),
				messageCenterDto.getPageSize() == null ? 10 : messageCenterDto.getPageSize());
		Page<MessageCenter> messageCenterList = messageCenterMapper.getMessageCenterList(messageCenterDto);
		return messageCenterList;
	}

MessageCenterMapper.xml Mapper层 查询实现代码

<?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.jxmcloud.business.shop.mapper.MessageCenterMapper">

    <select id="getMessageCenterList" resultType="com.jxmcloud.business.shop.model.MessageCenter">
        select * from message_center m
        where 1=1
        <if test="type!=null and type!=''">
            and m.type =#{type}
        </if>
        <if test="status != null">
            and m.`status` = #{status}
        </if>
        <if test="createStartTime!=null">
            and m.create_time <![CDATA[ >= ]]> #{createStartTime}
        </if>
        <if test="createEndTime!=null">
            and m.create_time <![CDATA[ <= ]]> #{createEndTime}
        </if>
        <if test="commissioningStartTime!=null">
            and m.commissioning_time <![CDATA[ >= ]]> #{commissioningStartTime}
        </if>
        <if test="commissioningEndTime!=null">
            and m.commissioning_time <![CDATA[ <= ]]> #{commissioningEndTime}
        </if>
            ORDER BY m.create_time desc
    </select>

    <update id="updateMessageByStatus" parameterType="com.jxmcloud.business.shop.model.MessageCenter">
        UPDATE message_center
        <set>
            <if test="status == 1">
                `status` = 1,
                commissioning_time = DATE_FORMAT(NOW(),'%Y-%m-%d %H:%m:%s'),
            </if>
            <if test="status ==0">
                `status` = 0,
                commissioning_time = null,
            </if>

        </set>
        WHERE id=#{id}
    </update>

</mapper>

分析分页插件源码

package com.github.pagehelper;

public class PageHelper extends com.github.pagehelper.page.PageMethod implements com.github.pagehelper.Dialect {
	```}
package com.github.pagehelper.page;

public abstract class PageMethod {
	```
public static <E> com.github.pagehelper.Page<E> startPage(int pageNum, int pageSize) { /* compiled code */ }
	```
}

PageHelper 调用静态方法startPage(int pageNum, int pageSize)分页,而Page继承于ArrayList,实际上是一个可封装页面元素的集合.


  // IntelliJ API Decompiler stub source generated from a class file
  // Implementation of methods is not available

package com.github.pagehelper;

public class Page <E> extends java.util.ArrayList<E> implements java.io.Closeable {
    private static final long serialVersionUID = 1L;
    private int pageNum; //页码
    private int pageSize; //单页条数
    private int startRow;
    private int endRow;
    private long total;  //页数
    private int pages;
    private boolean count;
    private java.lang.Boolean reasonable;
    private java.lang.Boolean pageSizeZero;
    private java.lang.String countColumn;
    private java.lang.String orderBy;
    private boolean orderByOnly;

    public Page() { /* compiled code */ }

    public Page(int pageNum, int pageSize) { /* compiled code */ }

    public Page(int pageNum, int pageSize, boolean count) { /* compiled code */ }

    private Page(int pageNum, int pageSize, boolean count, java.lang.Boolean reasonable) { /* compiled code */ }

    public Page(int[] rowBounds, boolean count) { /* compiled code */ }

    public java.util.List<E> getResult() { /* compiled code */ }

    public int getPages() { /* compiled code */ }

    public com.github.pagehelper.Page<E> setPages(int pages) { /* compiled code */ }

    public int getEndRow() { /* compiled code */ }

    public com.github.pagehelper.Page<E> setEndRow(int endRow) { /* compiled code */ }

    public int getPageNum() { /* compiled code */ }

    public com.github.pagehelper.Page<E> setPageNum(int pageNum) { /* compiled code */ }

    public int getPageSize() { /* compiled code */ }

    public com.github.pagehelper.Page<E> setPageSize(int pageSize) { /* compiled code */ }

    public int getStartRow() { /* compiled code */ }

    public com.github.pagehelper.Page<E> setStartRow(int startRow) { /* compiled code */ }

    public long getTotal() { /* compiled code */ }

    public void setTotal(long total) { /* compiled code */ }

    public java.lang.Boolean getReasonable() { /* compiled code */ }

    public com.github.pagehelper.Page<E> setReasonable(java.lang.Boolean reasonable) { /* compiled code */ }

    public java.lang.Boolean getPageSizeZero() { /* compiled code */ }

    public com.github.pagehelper.Page<E> setPageSizeZero(java.lang.Boolean pageSizeZero) { /* compiled code */ }

    public java.lang.String getOrderBy() { /* compiled code */ }

    public <E> com.github.pagehelper.Page<E> setOrderBy(java.lang.String orderBy) { /* compiled code */ }

    public boolean isOrderByOnly() { /* compiled code */ }

    public void setOrderByOnly(boolean orderByOnly) { /* compiled code */ }

    private void calculateStartAndEndRow() { /* compiled code */ }

    public boolean isCount() { /* compiled code */ }

    public com.github.pagehelper.Page<E> setCount(boolean count) { /* compiled code */ }

    public com.github.pagehelper.Page<E> pageNum(int pageNum) { /* compiled code */ }

    public com.github.pagehelper.Page<E> pageSize(int pageSize) { /* compiled code */ }

    public com.github.pagehelper.Page<E> count(java.lang.Boolean count) { /* compiled code */ }

    public com.github.pagehelper.Page<E> reasonable(java.lang.Boolean reasonable) { /* compiled code */ }

    public com.github.pagehelper.Page<E> pageSizeZero(java.lang.Boolean pageSizeZero) { /* compiled code */ }

    public com.github.pagehelper.Page<E> countColumn(java.lang.String columnName) { /* compiled code */ }

    public com.github.pagehelper.PageInfo<E> toPageInfo() { /* compiled code */ }

    public com.github.pagehelper.PageSerializable<E> toPageSerializable() { /* compiled code */ }

    public <E> com.github.pagehelper.Page<E> doSelectPage(com.github.pagehelper.ISelect select) { /* compiled code */ }

    public <E> com.github.pagehelper.PageInfo<E> doSelectPageInfo(com.github.pagehelper.ISelect select) { /* compiled code */ }

    public <E> com.github.pagehelper.PageSerializable<E> doSelectPageSerializable(com.github.pagehelper.ISelect select) { /* compiled code */ }

    public long doCount(com.github.pagehelper.ISelect select) { /* compiled code */ }

    public java.lang.String getCountColumn() { /* compiled code */ }

    public void setCountColumn(java.lang.String countColumn) { /* compiled code */ }

    public java.lang.String toString() { /* compiled code */ }

    public void close() { /* compiled code */ }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值