java 分页详解

第一步:建立pager分页实体类

package com.quhai.common.utils;

import java.io.Serializable;
import java.util.List;
/**
 * @ClassName: Page
 * @Description:分页工具类
 * @author: 李鹏
 * @date: 2019-10-19 
 * @Version:1.0
 */
public class Page<E> implements Serializable{
	private Integer pageSize=10;//每页显示的记录数,这里可以看到每页显示10条

	private Integer totalRecord;//数据库中总的记录数

	private Integer totalPage;//总页数

	private Integer currentPage;//当前页为第几页,比如图中就为第9页

	private List<E> list;
	public Integer getPageSize() {
	    return pageSize;
	}

	public void setPageSize(Integer pageSize) {
	    this.pageSize = pageSize;
	}

	public Integer getTotalRecord() {
	    return totalRecord;
	}

	public void setTotalRecord(Integer totalRecord) {
	    this.totalRecord = totalRecord;
	}

	public Integer getTotalPage() {
	    return totalPage;
	}

	public void setTotalPage(Integer totalPage) {
	    this.totalPage = totalPage;
	}

	public Integer getCurrentPage() {
	    return currentPage;
	}

	public void setCurrentPage(Integer currentPage) {
	    this.currentPage = currentPage;
	}

	public List<E> getList() {
	    return list;
	}

	public void setList(List<E> list) {
	    this.list = list;
	}


	public Page(Integer pageNo,Integer pageSize,List<E> sourceList){
	     if(sourceList==null){
	         return;
	     }
	     
	     //总记录数
	     this.totalRecord = sourceList.size();
	     
	     //每页显示多小条数据
	     this.pageSize = pageSize;
	     
	     //总页数
	     this.totalPage = this.totalRecord % this.pageSize == 0?this.totalRecord/this.pageSize:this.totalRecord/this.pageSize+1;
	     
	     //当前第几页
	     if(this.totalPage < pageNo){
	         this.currentPage = this.totalPage;
	     }else{
	         this.currentPage = pageNo;
	     }
	     
	     
	     //起始索引
	     Integer fromIndex = this.pageSize * (this.currentPage - 1);
	     
	     //结束索引
	     Integer endIndex = null;
	     if(this.pageSize * this.currentPage >this.totalRecord){
	         endIndex = this.totalRecord;
	     }else{
	         endIndex = this.pageSize * this.currentPage;
	     }
	     
	    this.list = sourceList.subList(fromIndex, endIndex);
	}

}

第二步:Controller 代码

/**
 * 
 * 功能:药店端---药事订单--(未完成/待分配/已完成)
 * 时间:2019年4月9日下午11:01:30
 * @param flag (0 未完成,3 待分配,4 已完成)
 *  @param pageNo :页面传过来的第几页(具体页码【2:就是第二页】)
 * @return Map
 * @author lipeng 
 */
@RequestMapping(value="/findDrugOrder",method = RequestMethod.POST)
public Map<String,Object> findDrugOrder(String flag,@RequestParam(defaultValue = "1") int pageNo){
	Map<String,Object> map = new HashMap<>();
	System.out.println("===========================");
	Map<String, Object> resultMap = new HashMap<String, Object>();		
	String content = "成功!";
	String result = "ok";
	List<Map<String,Object>> list = null;
	map.put("pageNo", pageNo);
	map.put("flag", flag);
	Pager pager =null;
	int totalPage=0;
	try {
		 pager=shanDongShopsService.findDayOrder(map);
		 totalPage= pager.getTotalPage();
		
	} catch (Exception e) {
		e.printStackTrace();
		content = "失败!!";
		result = "false";
	} finally {
		 if(pageNo>totalPage){
				resultMap.put("content", content);
				resultMap.put("result", result);
				resultMap.put("pagecount", null);
				resultMap.put("data", null);
				resultMap.put("totalPage", "0");
				resultMap.put("pageSize", "0");
				return resultMap;
		 }else{
				if (pager.getList() != null && pager.getList().size()> 0) {
					resultMap.put("content", content);
					resultMap.put("result", result);
					resultMap.put("pagecount", pager.getList().size());
					resultMap.put("data", pager.getList());
					resultMap.put("totalPage", pager.getTotalPage());//总页数
					resultMap.put("pageSize", pager.getPageSize());//每页显示的记录数,这里可以看到每页显示10条
				} else {
					resultMap.put("content", content);
					resultMap.put("result", result);
					resultMap.put("pagecount", null);
					resultMap.put("data", null);
					resultMap.put("totalPage", "0");
					resultMap.put("pageSize", "0");
				} 
		 }
	
	}
	return resultMap;
}

第三步:service 代码
/**
*
* 功能:药店端—药事订单–(未完成/待分配/已完成)
* 时间:2019年4月9日下午11:01:30
* @param flag (0 未完成,3 待分配,4 已完成)
* @return Map
* @author lipeng
*/
public Pager findDayOrder(Map<String, Object> map) {
int pageNo=(int) map.get(“pageNo”);
String flag=(String) map.get(“flag”);
List<Map<String, Object>> sourceList = new ArrayList<>();
if(StringUtils.isNotBlank(flag)){
if(“0”.equals(flag)){
sourceList=shanDongShopsMapper.findDayOrder();
}else if(“3”.equals(flag)){
sourceList=shanDongShopsMapper.findOrder_dfp();
}else if(“4”.equals(flag)){
sourceList=shanDongShopsMapper.findFinishOrders();
}
}
int pageSize=10;
Pager p = new Pager<Map<String, Object>>(pageNo,pageSize,sourceList);
return p;
}

第四步:dao层代码
/**

  • 药店端DAO
  • 时间:2019年4月9日下午11:00:00
  • @author lipeng
    /
    @Mapper
    public interface ShanDongShopsMapper {
    /
    *
    • 功能:药店端—药事订单–未完成
    • 时间:2019年4月9日下午11:01:30
    • @return List
    • @author lipeng
      */
      //@Select(“SELECT u.realname,DATE_FORMAT(d.create_date,’%Y-%m-%d %H:%i:%s’) create_date ,d.medicine_payType,d.medicine_payAmount,CASE d.medicine_orderState WHEN ‘0’ THEN ‘待确认’ WHEN ‘1’ THEN ‘已确认’ WHEN ‘3’ THEN ‘待配送’ WHEN ‘4’ THEN ‘已完成’ end medicine_orderState FROM t_medicine_order d JOIN t_user_base u ON u.id=d.user_id WHERE d.medicine_orderState<>4 AND d.medicine_orderState<>3 AND d.medicine_orderState<>2”)
      @Select(“SELECT d.id,u.realname,DATE_FORMAT(d.create_date,’%Y年%m月%d日’) create_date ,d.medicine_payType,d.medicine_payAmount,d.medicine_orderState,d.medicine_orderNum FROM t_medicine_order d JOIN t_user_base u ON u.id=d.user_id WHERE d.medicine_orderState<>4 AND d.medicine_orderState<>3 AND d.medicine_orderState<>2 AND d.medicine_orderState<>4 AND d.is_show=1”)
      List<Map<String, Object>> findDayOrder();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值