Hibernate分頁的兩種實現(xiàn)方法
更新時間:2016年03月24日 11:46:43 作者:ABCD
這篇文章主要介紹了Hibernate分頁的兩種實現(xiàn)方法,結合實例形式講述了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程序設計有所幫助。
您可能感興趣的文章:
相關文章
java實現(xiàn)輸出文件夾下某個格式的所有文件實例代碼
這篇文章主要介紹了java實現(xiàn)輸出文件夾下某個格式的所有文件,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2018-06-06Mybatis之a(chǎn)ssociation和collection用法
這篇文章主要介紹了Mybatis之a(chǎn)ssociation和collection用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02使用java基于pushlet和bootstrap實現(xiàn)的簡單聊天室
這篇文章主要介紹了使用java基于pushlet和bootstrap實現(xiàn)的簡單聊天室的相關資料,需要的朋友可以參考下2015-03-03Mybatis 數(shù)據(jù)庫連接池的實現(xiàn)示例
在Java應用程序中,與數(shù)據(jù)庫的連接是非常昂貴的,因此,當我們使用MyBatis進行數(shù)據(jù)操作時,需要一個連接池來分配并管理這些連接,本文主要介紹了Mybatis 數(shù)據(jù)庫連接池的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2023-10-10Windows環(huán)境IDEA下Ranger1.2.0源碼編譯詳細流程
本文給大家講解Windows環(huán)境IDEA下Ranger1.2.0源碼編譯過程,通過配置Tomcat,發(fā)布?security-admin-web項目,編譯啟動tomcat即可完成,需要的朋友參考下2021-06-06