Hibernate分页的两种实现方法
本文实例讲述了Hibernate分页的两种实现方法。分享给大家供大家参考,具体如下:
1.criteria分页
publicPagegetPage(intcurrentPage,intpageSize,Criterion...crts){
Criteriac=session.createCriteria(House.class);
Listlist=null;
for(inti=0;i<crts.length;i++){
c.add(crts[i]);
}
c.setProjection(Projections.rowCount());
inttotalRecord=Integer.valueOf(c.uniqueResult().toString());
c.setProjection(null);
c.setFirstResult((pageSize)*(currentPage-1));
c.setMaxResults(pageSize);
list=c.list();
Pagepage=newPage();
page.setCurrentPage(currentPage);
page.setPageSize(pageSize);
page.setTotalRecord(totalRecord);
page.setList(list);
returnpage;
}
2.hql分页
publicPagegetPage(intcurrentPage,intpageSize,Stringhql,Object...args){
StringcountHql="selectcount(*)"+hql.substring(hql.indexOf("from"));
Sessionsession=HibernateUtil.getInstance().getSession();
Queryquery=session.createQuery(countHql);
for(inti=0;i<args.length;i++){
query.setParameter(i,args[i]);
}
inttotalRecord=Integer.valueOf(query.uniqueResult()+"");
query=session.createQuery(hql);
for(inti=0;i<args.length;i++){
query.setParameter(i,args[i]);
}
query.setFirstResult(pageSize*(currentPage-1));
query.setMaxResults(pageSize);
List<House>list=(List<House>)query.list();
Pagepage=newPage();
page.setCurrentPage(currentPage);
page.setPageSize(pageSize);
page.setTotalRecord(totalRecord);
page.setList(list);
returnpage;
}
希望本文所述对大家基于Hibernate框架的Java程序设计有所帮助。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下