Hibernate分頁的兩種實現(xiàn)方法
更新時間:2016年03月24日 11:46:43 作者:ABCD
這篇文章主要介紹了Hibernate分頁的兩種實現(xiàn)方法,結(jié)合實例形式講述了criteria分頁與hql分頁的實現(xiàn)方法,需要的朋友可以參考下
本文實例講述了Hibernate分頁的兩種實現(xiàn)方法。分享給大家供大家參考,具體如下:
1. criteria分頁
public Page getPage(int currentPage,int pageSize,Criterion...crts){
Criteria c=session.createCriteria(House.class);
List list=null;
for (int i = 0; i < crts.length; i++) {
c.add(crts[i]);
}
c.setProjection(Projections.rowCount());
int totalRecord=Integer.valueOf(c.uniqueResult().toString());
c.setProjection(null);
c.setFirstResult((pageSize)*(currentPage-1));
c.setMaxResults(pageSize);
list=c.list();
Page page=new Page();
page.setCurrentPage(currentPage);
page.setPageSize(pageSize);
page.setTotalRecord(totalRecord);
page.setList(list);
return page;
}
2. hql分頁
public Page getPage(int currentPage,int pageSize,String hql,Object...args){
String countHql="select count(*) "+hql.substring(hql.indexOf("from"));
Session session=HibernateUtil.getInstance().getSession();
Query query=session.createQuery(countHql);
for (int i = 0; i < args.length; i++) {
query.setParameter(i, args[i]);
}
int totalRecord=Integer.valueOf(query.uniqueResult()+"");
query=session.createQuery(hql);
for (int i = 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();
Page page=new Page();
page.setCurrentPage(currentPage);
page.setPageSize(pageSize);
page.setTotalRecord(totalRecord);
page.setList(list);
return page;
}
希望本文所述對大家基于Hibernate框架的Java程序設(shè)計有所幫助。
您可能感興趣的文章:
- Hibernate緩存詳解
- Spring與Hibernate整合事務(wù)管理的理解
- Java的Hibernate框架中復(fù)合主鍵映射的創(chuàng)建和使用教程
- Java的Hibernate框架結(jié)合MySQL的入門學(xué)習(xí)教程
- 解決Hibernate4執(zhí)行save()或update()無效問題的方法
- 從最基本的Java工程搭建SpringMVC+SpringDataJPA+Hibernate
- Hibernate延遲加載原理與實現(xiàn)方法
- Hibernate批量處理海量數(shù)據(jù)的方法
- Hibernate實現(xiàn)批量添加數(shù)據(jù)的方法
- Hibernate原理及應(yīng)用
相關(guān)文章
java實現(xiàn)輸出文件夾下某個格式的所有文件實例代碼
這篇文章主要介紹了java實現(xiàn)輸出文件夾下某個格式的所有文件,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2018-06-06
Mybatis之a(chǎn)ssociation和collection用法
這篇文章主要介紹了Mybatis之a(chǎn)ssociation和collection用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
使用java基于pushlet和bootstrap實現(xiàn)的簡單聊天室
這篇文章主要介紹了使用java基于pushlet和bootstrap實現(xiàn)的簡單聊天室的相關(guān)資料,需要的朋友可以參考下2015-03-03
Mybatis 數(shù)據(jù)庫連接池的實現(xiàn)示例
在Java應(yīng)用程序中,與數(shù)據(jù)庫的連接是非常昂貴的,因此,當(dāng)我們使用MyBatis進行數(shù)據(jù)操作時,需要一個連接池來分配并管理這些連接,本文主要介紹了Mybatis 數(shù)據(jù)庫連接池的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2023-10-10
Windows環(huán)境IDEA下Ranger1.2.0源碼編譯詳細流程
本文給大家講解Windows環(huán)境IDEA下Ranger1.2.0源碼編譯過程,通過配置Tomcat,發(fā)布?security-admin-web項目,編譯啟動tomcat即可完成,需要的朋友參考下2021-06-06

