public class ShopServiceImpl implements ShopService {
private ShopDao shopDao=new ShopDaoImpl();
@Override
public PageUtil<Shop> queryGoods(int currentPage) {
PageUtil<Shop> pageUtil = new PageUtil<Shop>();
int totalPage=shopDao.count();
pageUtil.initParam(totalPage,8,currentPage);
int startRow=pageUtil.getStartRow();
List<Shop> shopList = shopDao.queryGoods(startRow, 8);
return pageUtil;
}
}
public class PageUtil<T> {
private int currentPage; //当前的页数
private int pageSize; //每页显示的记录数
private int startRow; //每一页开始的条数的下标
private int totalCount; //总记录数
private int totalPage; //总页数
private List<T> lists = new ArrayList<T>(); //每页要在页面上显示的数据
public int getCurrentPage() { //获得当前页数
return currentPage;
}
public void setCurrentPage(int currentPage) { //设置用户访问的当前页数
if (currentPage <= 0) { //如果当前页数<=0
currentPage = 1; //当前的页数从1开始(分页显示数据,只能从第一页开始,不能从第0页,不能从-1 -2...页开始 )
} else if (currentPage > this.getTotalPage()) { //如果用户访问的当前页数>总页数
if (this.getTotalPage() == 0) { //如果总页数=0,说明我们的总记录数为0
currentPage = 1; //给用户展示第一页
} else {
currentPage = this.getTotalPage();//假设总共有2页,用户访问第3页上的数据,此时系统给用户展示第二页的数据
}
}
this.currentPage = currentPage;
}
public int getPageSize() { //获得每页显示的条数
return pageSize;
}
public void setPageSize(int pageSize) { //设置每页显示的条数
if (pageSize <= 0) {
pageSize = 5;
}
this.pageSize = pageSize;
}
//每一页的开始条数的下标
public int getStartRow() {
return (this.getCurrentPage() - 1) * this.getPageSize();
}
//获得总记录数
public int getTotalCount() {
return totalCount;
}
//设置总记录数
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
//获得总页数
public int getTotalPage() {
if (this.getTotalCount() % this.getPageSize() == 0) {
return this.getTotalCount() / this.getPageSize();
} else {
return this.getTotalCount() / this.getPageSize() + 1;
}
}
//获得当前页的数据
public List<T> getLists() {
return lists;
}
//设置当前页的数据
public void setLists(List<T> lists) {
this.lists = lists;
}
public void initParam(int count,int pageSize,int currentPage){
this.setTotalCount(count);
this.setPageSize(pageSize);
this.setCurrentPage(currentPage);
}
}