第一步:引入mybatisplus Maven依赖
<!--Mybatis-plus的依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1</version>
</dependency>
第二步: 自己封装的分页工具类,可以在项目里建一个包,把这些类copy进去
public class LayuiPageFactory {
/**
* 响应请求分页数据
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public static TableDataInfo getDataTable(List list){
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SC_OK);
rspData.setMsg("查询成功");
rspData.setData(list);
rspData.setTotal(new PageInfo(list).getTotal());
return rspData;
}
}
/**
* 分页数据
*
*/
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class PageDomain
{
/** 当前记录起始索引 */
private Integer pageNum;
/** 每页显示记录数 */
private Integer pageSize;
/** 排序列 */
private String orderByColumn;
/** 排序的方向desc或者asc */
private String isAsc = "asc";
public String getOrderBy()
{
if (StrUtil.isEmpty(orderByColumn))
{
return "";
}
return StrUtil.toUnderlineCase(orderByColumn) + " " + isAsc;
}
}
/**
* 表格数据处理
*
*/
public class TableSupport{
/**
* 当前记录起始索引
*/
public static final String PAGE_NUM = "pageNum";
/**
* 每页显示记录数
*/
public static final String PAGE_SIZE = "pageSize";
/**
* 排序列
*/
public static final String ORDER_BY_COLUMN = "orderByColumn";
/**
* 排序的方向 "desc" 或者 "asc".
*/
public static final String IS_ASC = "isAsc";
/**
* 封装分页对象
*/
public static PageDomain getPageDomain(){
PageDomain pageDomain = new PageDomain();
pageDomain.setPageNum(ServletUtils.getParameterToInt(PAGE_NUM));
pageDomain.setPageSize(ServletUtils.getParameterToInt(PAGE_SIZE));
pageDomain.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN));
pageDomain.setIsAsc(ServletUtils.getParameter(IS_ASC));
return pageDomain;
}
public static PageDomain buildPageRequest() {
return getPageDomain();
}
}
/**
* 表格分页数据对象
*
*/
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class TableDataInfo<T> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 总记录数
*/
private long total;
/**
* 列表数据
*/
private List<T> data;
/**
* 消息状态码
*/
private int code;
/**
* 消息内容
*/
private String msg;
/**
* 分页
*
* @param list 列表数据
* @param total 总记录数
*/
public TableDataInfo(List<T> list, long total) {
this.data = list;
this.total = total;
}
public static <T> TableDataInfo<T> build(IPage<T> page) {
TableDataInfo<T> rspData = new TableDataInfo<>();
rspData.setCode(0);
rspData.setMsg("查询成功");
rspData.setData(page.getRecords());
rspData.setTotal(page.getTotal());
return rspData;
}
public static <T> TableDataInfo<T> build(List<T> list) {
TableDataInfo<T> rspData = new TableDataInfo<>();
rspData.setCode(0);
rspData.setMsg("查询成功");
rspData.setData(list);
rspData.setTotal(list.size());
return rspData;
}
public static <T> TableDataInfo<T> build() {
TableDataInfo<T> rspData = new TableDataInfo<>();
rspData.setCode(0);
rspData.setMsg("查询成功");
return rspData;
}
}
第三步:使用方式,在controller继承BaseController,返回TableDataInfo<?>,getDataTable(里面是要返回的数据);
//继承BaseController
public class Controller extends BaseController {
@GetMapping("cheshi")
@ApiOperation("测试")
public TableDataInfo<?> cheshiList() {
//开始分页
startPage();
//getDataTable里面是要返回的数据
return getDataTable();
}
}