首先写一个基础的分类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了