java实现分页

本文介绍了一种基于Java的分页查询实现方法,包括PageUtil类的设计,用于处理分页逻辑,以及Good实体类的定义。通过SQL查询获取总记录数和分页数据,Controller层使用PageUtil进行分页设置,并将查询结果转化为JSON格式返回前端。
摘要由CSDN通过智能技术生成

1.分页类

public class PageUtil{
	
	private int count; //总条数
	
	private int pageCount;//总页数 
	 
	private int startRow;//起始行
	
	private int endRow;//结束行
	
	private int pageSize;//每页显示条数
	
	private int pageNum;//当前页

	/**
	 * 
	 * @param count 总条数
	 * @param pageNum  当前页 
	 * @param pageSize  每页条数
	 */
	public 	PageUtil(int count, int pageNum,int pageSize){
		this.count=count;//总条数
		this.pageNum=pageNum;//当前页 
		this.pageSize=pageSize;//每页条数
		this.startRow=(this.pageNum-1)* this.pageSize;//起始行 当前也页码显示的数据开始的条数
		this.endRow = this.pageNum * this.pageSize;//结束行
		this.pageCount = (int) Math.ceil(Double.valueOf(count)/Double.valueOf(pageSize));//总页数
	}

	public PageUtil() {}
    getter();
    setter();
  

2实体类

public class Good extends PageUtil {

	private Integer id;

	private String name;

	getter();

	setter();
}

3.SQL
a.先查询出count的值
select count(*) from table;
b.查询出数据封装到List
select table.a,table.b from table limit startRow,pageSize;

4.Controller层的代码

PageUtil page = new PageUtil(count,pageNum,10);//count是查询出的数量,pageNum是前端提供的第几页,10是指展示的数据.
object.setStartRow(page.getStartRow());
object.setPageSize(page.getPageSize());
good.setStartRow(page.getStartRow());
good.setPageSize(page.getPageSize);
List<Good> list = service.getGoodList(good);
return goodListToJson(list,page.getPageNum();page.getPageCount());//转为JSON数据反给前端

5.转换为json的代码

public String goodListToJson(List<Good> list,int pageNum,int pageCount){
	ObjectMapper objectMapper = new ObjectMapper();
    ObjectNode result = objectMapper.createObjectNode();
    //如果要嵌套数组,可以创建ArrayNode对象,然后result.put(arrayNode)
    if(list != null && list.size() > 0){
    	result.put("a",list.get(i).getId());
    	result.put("b",list.get(i).getName());
    }
    return result.toString();
}

6.仅为部分代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值