在做项目的时候,经常使用到分页查询,有的直接使用模板,这儿是实现最基本的用法,还有很多没优化,就在此写下基本能实现的功能。
我们创建一个工具类,用来实现分页需要的数据信息
package com.brick.squad.util;
public class Pagination {
private int skipNum;//当前第几条记录开始
private int takeNum;//从开始记录开始每页显示条数
private int curentPage;//当前页
private int pageSize;//每页显示记录数
public int getSkipNum() {
return (curentPage-1)*pageSize;
}
public int getTakeNum() {
return pageSize;
}
public int getCurentPage() {
return curentPage;
}
public void setCurentPage(int curentPage) {
this.curentPage = curentPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
}
实现完成后,在controller 的类中,实现并显示
@Controller
@RequestMapping("/orders")
public class OrdersController {
@Autowired
@Qualifier("ordersService")
private OrdersService ordersService;
@RequestMapping("ordersPagination")
public String ordersPagination(Pagination pagination,HttpServletRequest request,Integer currentPage) throws Exception {
//获取总记录数
Integer count=ordersService.findOrdersCount();
request.setAttribute("count", count);
if(currentPage==null){
pagination.setCurentPage(1);
//设置每页显示多少条记录
pagination.setPageSize(3);
}else{
//设置当前第几页
pagination.setCurentPage(currentPage);
//设置每页显示多少条记录
pagination.setPageSize(3);
}
//总页数:向上取整
Integer totalPage=(int) Math.ceil(count/pagination.getPageSize());
request.setAttribute("totalPage", totalPage);
request.setAttribute("pagination" ,pagination);
List
request.setAttribute("ordersList", ordersList);
return "/backstage_managed/jsp/ordersList";
}
}
上面需要的service,以及mapper类等自己去实现就可以;
service实现方法:
@Override
/** Orders订单分页查询*/
public List
List
return ordersList;
}
@Override
/**查询订单总数*/
public Integer findOrdersCount() throws Exception {
Integer ordersCount=ordersMapper.findOrdersCount();
return ordersCount;
}
service接口:
/**
* 查询订单总数
* */
public Integer findOrdersCount()throws Exception;
/**
* Orders订单分页查询
* */
public List
mapper接口:
public void deleteOrdersById(String id);
/**
* 查询订单总数
* */
public Integer findOrdersCount();
/**
* Orders订单分页查询
* */
public List
mapper.xml配置文件:SQL语句
id, no, state_id stateId, production_date productionDate,
buy_id buyId,
number, money
完成上面的功能后便可以在页面中显示了:
订单ID | 订单编号 | 订单状态 | 订单产生时间 | 买家ID | 数量 | 总额 |
---|---|---|---|---|---|---|
${orders.id} | ${orders.no} | ${orders.stateId} | ${orders.productionDate} | ${orders.buyId} | ${orders.number} | ${orders.money} |
注意:上面有的没有实现,比如service的bean,自己去实现。