springboot之mybatis分页查询

首先写一个基础的分类bean插件,由下面两个类组成

package com.my.utils;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.StringUtils;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * 
 * @author luozejun
 *
 */
public class BaseBean {
	private Integer page ;
	
	private Integer rows ;
	
	private String sort;
	
	private String order;

	/**
	 * 分页导航
	 */
	private Pager pager = new Pager();
	
	public Pager getPager() {
		if(page!=null && rows!=null){
			pager.setPageId(page);
			pager.setPageSize(rows);
			String orderField="";
			if(StringUtils.isNotBlank(sort)){
				orderField = sort;
			}
			if(StringUtils.isNotBlank(orderField) && StringUtils.isNotBlank(order)){
				orderField +=" "+ order;
			}
			pager.setOrderField(orderField);
			return pager;
		}else{
			return pager;
		}
	}
	public void setPager(Pager pager) {
		this.pager = pager;
	}

	public Integer getPage() {
		return page;
	}

	public void setPage(Integer page) {
		this.page = page;
	}

	public Integer getRows() {
		return rows;
	}

	public void setRows(Integer rows) {
		this.rows = rows;
	}

	public String getSort() {
		return sort;
	}

	public void setSort(String sort) {
		this.sort = sort;
	}

	public String getOrder() {
		return order;
	}

	public void setOrder(String order) {
		this.order = order;
	}


}
package com.my.utils;

/**
 * <p>
 * Title: WASU Platform
 * </p>
 * <p>
 * Description: 分页技术的实现。
 * </p>
 * <p>
 * Copyright: 2006-2008
 * </p>
 * <p>
 * Company:
 * </p>
 *
 * @author
 * @version 2.0
 */
// oracle,sqlserver,mysql分页技术
public class Pager {
    //page
    private Integer pageId ; // 当前页
    //row
    private Integer pageSize ; // 页大小

    private Integer pageOffset = 0;// 当前页起始记录

    private String orderField;

    private Integer pageEnd;

    private boolean orderDirection = true;

    public Integer getPageEnd() {
        return pageEnd;
    }

    public void setPageEnd(Integer pageEnd) {
        this.pageEnd = pageEnd;
    }

    protected void doPage() {
        if(pageSize ==null || pageId==null){ return ;}
        this.pageOffset = (this.pageId - 1) * this.pageSize;
    }

    public String getOrderCondition() {
        String condition = "";
        if (this.orderField != null && this.orderField.length() != 0) {
            condition = " order by " + orderField
                    + (orderDirection ? " " : " desc ");
        }
        return condition;
    }

    public String getMysqlQueryCondition() {
        if(pageSize ==null || pageId==null) {return null;}
        if(pageOffset == null){
            doPage();
        }
        this.pageEnd = pageOffset + pageSize;
        String condition = "";
        condition = " limit " + pageOffset + "," + pageSize;
        return condition;
    }

    public String getMysqlQueryStudip() {
        String condition = " limit " + pageOffset + "," + pageSize;
        return condition;
    }


    public void setOrderDirection(boolean orderDirection) {
        this.orderDirection = orderDirection;
    }

    public boolean isOrderDirection() {
        return orderDirection;
    }

    public void setOrderField(String orderField) {
        this.orderField = orderField;
    }

    public String getOrderField() {
        return orderField;
    }


    public void setPageId(Integer pageId) {
        this.pageId = pageId;
        if(pageSize!=null){
            doPage();
            this.pageEnd = pageOffset + pageSize;
        }
    }

    public Integer getPageId() {
        return pageId;
    }

    public void setPageOffset(Integer pageOffset) {
        this.pageOffset = pageOffset;
    }

    public Integer getPageOffset() {
        return pageOffset;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
        if(pageId!=null){
            doPage();
            this.pageEnd = pageOffset + pageSize;
        }
    }

    public Integer getPageSize() {
        return pageSize;
    }

}

再写一个应答类

package com.my.utils;

public class ResultEndBean {
    private Object data;
    private Integer codeId;
    private String msg;
    
    public ResultEndBean(Object data) {
        this();
        setData(data);
    }

    public ResultEndBean() {
        codeId = 0;
        msg = "success";
    }
    public ResultEndBean(boolean flag) {
        codeId = flag?0:1;
        msg = flag?"success":"error";
    }
    public ResultEndBean(boolean flag, String msg) {
        codeId = flag?0:1;
        this.msg = msg;
    }
    public ResultEndBean(Integer codeId, String msg, Object data) {
        this.codeId = codeId;
        this.msg = msg;
        this.data = data;
    }
    public ResultEndBean(Integer codeId, String msg) {
        this.codeId = codeId;
        this.msg = msg;
    }
    public ResultEndBean(Integer codeId) {
        this.codeId = codeId;
    }
    public Object getData() {
        return data;
    }
    public void setData(Object data) {
        this.data = data;
    }
    public Integer getCodeId() {
        return codeId;
    }
    public void setCodeId(Integer codeId) {
        this.codeId = codeId;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }

}

处理方式如下:

@RestController
public class UsercopyControl {

    @Autowired
    UsercopyMapper  usercopyMapper;

    @GetMapping("/page")
    ResultEndBean GetPage(BaseBean baseBean)
    {

        Map<String,Object> map = new HashMap<>(4);
        List<Usercopy> usercopies = usercopyMapper.GetTotal(baseBean);
        map.put("data", usercopies);
        return new ResultEndBean(map);
    }
}

XML编写如下:

<?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.my.mapper.UsercopyMapper">
    <select id="GetTotal" parameterType="com.my.utils.BaseBean" resultType = "Usercopy" >
        SELECT  id,myname,age FROM  user_copy  where 1 = 1
        <if test="pager.mysqlQueryCondition != null and pager.mysqlQueryCondition != ''" >
            ${pager.mysqlQueryCondition}
        </if>
    </select>
</mapper>

最后,使用postman测试

 ********************************遇到一个大坑,name字段一直返回为null,后来发现居然加了一个string 的引用

import com.sun.org.apache.xpath.internal.operations.String;

 

去掉这个,即OK了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值