**分页:主要就是封装一个大的分页数据类 PageBean 传入前台
public class PageBean<T> {
private int currentPage; //当前页(浏览器传递)
private int currentCount; //当前页显示的个数 (固定值)
private int totalCount; //总记录数,数据库查询
private int totalPage; //总分页数
private int startIndex; //开始索引
private List<Product> productlist = new ArrayList<Product>(); //分页数据,数据库查询
通过前台传入 当前页currentPage,
通过后台 数据库查询 获得总记录数totalCount,即商品总数。
通过计算currentPage,currentCount,totalCount 来获得总分页数totalPage,
由数据库查询获得 productlist分页数据
//获得分页的商品数据
public List<Product> findProductListForPagebean(int currentPage, int currentCount) throws SQLException {
QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());
//分页查询,limit 开始索引,每页显示个数(开始索引---> (当前页数-1)*每页显示个数)
int index = (currentPage - 1) * currentCount;
String sql = "select * from product limit ?,?";
return qr.query(sql, new BeanListHandler<Product>(Product.class), index, currentCount);
}
public static PageBean findPageBean(int currentPage, int currentCount) throws SQLException {
//目的就是封装一个pagebean 并返回
PageBean<Product> pageBean = new PageBean();
/*
private int currentPage; //当前页(浏览器传递)
private int currentCount; //每页显示的个数 (固定值)
private int totalCount; //总记录数,数据库查询
private int totalPage; //总分页数
private int startIndex; //开始索引
private List<T> productList = new ArrayList<T>(); //分页数据,数据库查
*/
QueryProduct dao = new QueryProduct();
//private int currentPage; //当前页(浏览器传递)
pageBean.setCurrentPage(currentPage);
//每页显示的个数 (固定值)
pageBean.setCurrentCount(currentCount);
//总记录数
int totalCount = dao.getProductTotalCount();
/* private int totalPage; //总分页数
* 总页数 = Math.ceil(总条数/当前显示的条数)
*/
// pageBean.setTotalPage(totalPage); //总分页数
int totalPage = (int) Math.ceil(1.0 * totalCount / currentCount);
pageBean.setTotalPage(totalPage);
//private List<T> productList = new ArrayList<T>(); //分页数据,数据库查
List<Product> productlist = dao.findProductListForPagebean(currentPage, currentCount);
System.out.println(productlist.size());
pageBean.setProductlist(productlist);
System.out.println(pageBean.getProductlist().size());
return pageBean;
}