Hibernate分页的两种实现方法

 更新时间:2016年03月24日 11:46:43   作者:ABCD  
这篇文章主要介绍了Hibernate分页的两种实现方法,结合实例形式讲述了criteria分页与hql分页的实现方法,需要的朋友可以参考下

本文实例讲述了Hibernate分页的两种实现方法。分享给大家供大家参考,具体如下:

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程序设计有所帮助。

相关文章

  • 详解Spring中bean生命周期回调方法

    详解Spring中bean生命周期回调方法

    本篇文章主要介绍了详解Spring中bean生命周期回调方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 基于java实现一个脱敏组件

    基于java实现一个脱敏组件

    这篇文章主要为大家详细介绍了如何基于java实现一个脱敏组件,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-11-11
  • SpringBoot自定义HttpMessageConverter操作

    SpringBoot自定义HttpMessageConverter操作

    这篇文章主要介绍了SpringBoot自定义HttpMessageConverter的操作,具有很好的参考价值,如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 聊聊springboot静态资源加载的规则

    聊聊springboot静态资源加载的规则

    这篇文章主要介绍了springboot静态资源加载的规则,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 利用Java8 Optional类优雅如何地解决空指针问题

    利用Java8 Optional类优雅如何地解决空指针问题

    这篇文章主要给大家介绍了关于如何利用Java8 Optional类优雅解决空指针问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 关于MapStruct的使用教程

    关于MapStruct的使用教程

    MapStruct 是一个用于 Java Bean 映射的代码生成器,通过注解处理器自动生成映射代码,以下是 MapStruct 的基本使用方法:添加依赖、定义映射接口、使用映射方法、定义自定义映射方法、处理复杂映射、集成 Spring 等
    2025-02-02
  • maven插件maven-assembly-plugin打包归纳文件zip/tar使用

    maven插件maven-assembly-plugin打包归纳文件zip/tar使用

    java项目运行的文件需要jar或者war格式,同时还需要使用Java命令,本文主要介绍了maven插件maven-assembly-plugin打包归纳文件zip/tar使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • Mybatis结果集自动映射的实例代码

    Mybatis结果集自动映射的实例代码

    在使用Mybatis时,有的时候我们可以不用定义resultMap,而是直接在<select>语句上指定resultType。这个时候其实就用到了Mybatis的结果集自动映射,下面通过本文给大家分享Mybatis结果集自动映射的实例代码,一起看看吧
    2017-02-02
  • Java调用第三方http接口的四种方式总结

    Java调用第三方http接口的四种方式总结

    这篇文章主要给大家介绍了关于Java调用第三方http接口的四种方式,在实际开发中我们经常会与第三方公司进行合作,接入第三方接口,文中给出了详细的代码实例,需要的朋友可以参考下
    2023-08-08
  • 浅谈Ribbon、Feign和OpenFeign的区别

    浅谈Ribbon、Feign和OpenFeign的区别

    这篇文章主要介绍了浅谈Ribbon、Feign和OpenFeign的区别。具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06

最新评论