ssh 分页查询

先写公用类PageBean泛型类


public class PageBean<T> {

//当前页
private Integer currentPage;
//总记录
private Integer totalCount;
//每页条数
private Integer pageSize;
//总页数
private Integer totalPage;
//开始位置
private Integer begin;
//list集合
private List<T> list;

public void setCurrentPage(Integer currentPage) { this.currentPage = currentPage; } public Integer getTotalCount() { return totalCount; } public void setTotalCount(Integer totalCount) { this.totalCount = totalCount; } public Integer getPageSize() { return pageSize; } public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } public Integer getTotalPage() { return totalPage; } public void setTotalPage(Integer totalPage) { this.totalPage = totalPage; } public Integer getBegin() { return begin; } public void setBegin(Integer begin) { this.begin = begin; } public List<T> getList() { return list; } public void setList(List<T> list) { this.list = list; } }

action方法中查询所有数据

private Integer currentPage;  get/set方法

 //分页方法
public String listpage(){

  if(currentPage==null){
currentPage = 1;
}

  PageBean<User> pageBean = userService.listpage(currentPage);
//放到与对象里面
request.setAttribute("pageBean",pageBean);
//放到与对象里面
request.setAttribute("pageBean",pageBean);
return "listpage";
}



service中方法

//分页

public PageBean<User> listpage(Integer currentPage) {
PageBean<User> pageBean = new PageBean<User>();

//当前页
pageBean.setCurrentPage(currentPage);

//总记录数  调用一个方法findCount()
int totalCount = userDao.findCount();
pageBean.setTotalCount(totalCount);

//meiye 条数
int pageSize= 3;

//总页数
int totalPage = 0;
if(totalCount%pageSize==0){
totalPage = totalCount/pageSize;
}else{
totalPage = totalCount/pageSize+1;
} 
pageBean.setTotalPage(totalPage);
//开始位置
int begin = (currentPage-1)*pageSize;
//list集合
List<User> list = userDao.findAll(begin,pageSize);
pageBean.setList(list);
return pageBean;
}


dao层中

//总条数
@SuppressWarnings("all")
public int findCount() {
List<Object> list =(List<Object>) getSession().createQuery("select count(*) from User").list();
if(list!=null && list.size()>0){
Object obj = list.get(0);
Long log= (Long)obj;
int count = log.intValue();
return count;
}
return 0;
}


//反回list集合分页查询
@SuppressWarnings("all")
public List<User> findAll(int begin, int pageSize) {
/*//第一种方式
//得到工厂
SessionFactory sessionFactory = this.getHibernateTemplate().getSessionFactory();
Session session = sessionFactory.getCurrentSession();
Query query = session.createQuery("from User");
query.setFirstResult(begin);
query.setMaxResults(pageSize);
List<User> list = query.list();*/

//第二种、使用离线对象和hibernateTemplate实现
//创建离线对象 设置对哪个实体类操作
DetachedCriteria criteria = DetachedCriteria.forClass(User.class);
//调用模板方法

List<User> list = (List<User>)this.getHibernateTemplate().findByCriteria(criteria,begin,pageSize);

return list;
}

jsp页面

 <div class="header-info">
                            共<span class="info-number">[${pageBean .totalCount}]</span>条结果,
                            分成<span class="info-number">[${pageBean.totalPage}]</span>页显示,
                            当前第<span class="info-number">[${pageBean.currentPage}]</span>页.
           <c:if test="${pageBean.currentPage ne 1}">
           [<a href="${pageContext.request.contextPath }/user_listpage?currentPage=${pageBean.currentPage-1}">前一  页</a>]   
        </c:if>
        <c:if test="${pageBean.currentPage ne pageBean.totalPage}">
           [<a href="${pageContext.request.contextPath }/user_listpage?currentPage=${pageBean.currentPage+1}">后一页</a>]   
    </c:if>     

 </div>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值