`

使用hql 语句进行分页查询操作

阅读更多

 /**
     * 使用hql 语句进行分页查询操作
     *
@param hql 需要查询的hql语句
     *
@param offset 第一条记录索引
     *
@param pageSize 每页需要显示的记录数
     *
@return 当前页的所有记录
    
*/
    @SuppressWarnings(
"unchecked")
   
public List findByPage(final String hql,
        
final int offset, final int pageSize)
    {

        List list
= getHibernateTemplate().executeFind(new HibernateCallback()
            {
               
public Object doInHibernate(Session session)
                   
throws HibernateException, SQLException
                {
                    List result
= session.createQuery(hql)
                                         .setFirstResult(offset)
                                         .setMaxResults(pageSize)
                                         .list();
                   
return result;
                }
            });
       
return list;
    }


   
/**
     * 使用hql 语句进行分页查询操作
     *
@param hql 需要查询的hql语句
     *
@param value 如果hql有一个参数需要传入,value就是传入的参数
     *
@param offset 第一条记录索引
     *
@param pageSize 每页需要显示的记录数
     *
@return 当前页的所有记录
    
*/
    @SuppressWarnings(
"unchecked")
   
public List findByPage(final String hql , final Object value ,
        
final int offset, final int pageSize)
    {

        List list
= getHibernateTemplate().executeFind(new HibernateCallback()
            {
               
public Object doInHibernate(Session session)
                   
throws HibernateException, SQLException
                {
                    List result
= session.createQuery(hql)
                                         .setParameter(
0, value)
                                         .setFirstResult(offset)
                                         .setMaxResults(pageSize)
                                         .list();
                   
return result;
                }
            });
       
return list;
    }


   
/**
     * 使用hql 语句进行分页查询操作
     *
@param hql 需要查询的hql语句
     *
@param values 如果hql有多个个参数需要传入,values就是传入的参数数组
     *
@param offset 第一条记录索引
     *
@param pageSize 每页需要显示的记录数
     *
@return 当前页的所有记录
    
*/
    @SuppressWarnings(
"unchecked")
   
public List findByPage(final String hql, final Object[] values,
        
final int offset, final int pageSize)
    {

        List list
= getHibernateTemplate().executeFind(new HibernateCallback()
            {
               
public Object doInHibernate(Session session)
                   
throws HibernateException, SQLException
                {
                    Query query
= session.createQuery(hql);
                   
for (int i = 0 ; i < values.length ; i++)
                    {
                        query.setParameter( i, values[i]);
                    }
                    List result
= query.setFirstResult(offset)
                                       .setMaxResults(pageSize)
                                       .list();
                   
return result;
                }
            });
       
return list;
    }
       
}

分享到:
评论

相关推荐

    SSh sql/hql 分页

    SSH 分页的例子源代码 全~~ 代码很全面了适合新手借鉴。但不支持完全的抄袭自己写还是最快的学习办法。

    sql2008 hql语句翻译过来的分页语句介绍

    有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。 特别对于UNION ALL比较有用

    封装好的hibernate数据库操作(增,删,改,查,分页)

    分页查询 2.保存对象 3.保存对象组 4. 更新对象 5.更新对象组 6.保存或更新对象 7.保存或更新对象组 8. 删除对象 9. 删除对象组 10.删除对象(此类的所有对象) 11.删除(HQL) 12.执行HQL语句 13.执行HQL语句组 14. ...

    SSH2实现通用分页

    SSH2框架为基础,ORACLE数据库,将需要分页的集合的hql语句传人,就可帮你自动实现分页,扩展性强 里面包含jsp页面分页示例和sql语句。本人新手,望大家多多指点不足之处。

    rock-0.9.1开源框架

    4 不支持HQL之类的查询语言,对于复杂查询任务,直接使用sql语言,操作简单,可直接返回对象数据。 5 对于复杂查询任务,sql语句也可以直接放在spring的配置文件中,直接注入到DAO中。 6 不支持对象之间的关联。 7 ...

    Swift版SQLite ORM框架PKLormapping

    •支持面向对象,零SQL操作数据库 •支持模拟器版本和真机版本 •支持自定义SQL扩展 •支持1级缓存,万级数据可达到百倍速度获取 ...•支持HQL语句 •支持多表联动查询映射 •支持事务处理机制 •支持批量插入和更新

    SQLite ORM框架PKLormapping

    •支持面向对象,零SQL操作数据库 •支持模拟器版本和真机版本 •支持自定义SQL扩展 •支持1级缓存,万级数据可达到百倍速度获取 ...•支持HQL语句 •支持多表联动查询映射 •支持事务处理机制 •支持批量插入和更新

    Hibernate_二级缓存总结

    缓存可以简单的看成一个 Map ,通过 key 在缓存里面找 ...对于查询缓存来说,缓存的 key 是根据 hql 生成的 sql ,再加上参数,分页等信息(可以通过日志输出看到,不过它的输出不是很可读,最好改一下它的代码)。

    网上租房系统(SSH框架)

    SSH框架; 发布、修改房屋,用户注册的提示信息没有实现; 错误检测方面,功能不全,主要在字节长度以及有效性方面; 分页显示仍旧没有实现,按条件查询实现方法较复杂,为hql语句,未使用Critical查询。

    rock-0.9开源框架

    4 不支持HQL之类的查询语言,对于复杂查询任务,直接使用sql语言,操作简单,可直接返回对象数据。 5 对于复杂查询任务,sql语句也可以直接放在spring的配置文件中,直接注入到DAO中。 6 不支持对象之间的关联。 7 ...

    PKLormapping:Object-c和Swift版本SQLite ORM框架

    •支持HQL语句 •支持多表联动查询映射 •支持事务处理机制 •支持批量插入和更新 ⌀目前不支持join连接方式自动补全 1.1版本 修复: ➤属性空值SQL映射失败BUG ➤修复使用过程中数据内存占用问题 新增: ➤新增多表...

    根据实体bean,生成ssh的增删改查和配置文件

    自动生成dao,daoImpl,service,serviceImpl,action,struts.xml和application.xml配置 添加分页支持 查找某一个字段支持 根据hql语句查找支持 导出Excel支持

    hibernate+spring +ant+junit

    hibernate+spring +ant+junit 1.整合hibernate+spring 2.ant自动生成xml文件和api 3.junit测试hql语句 4.c标签写的前台分页程序

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     17.1.12 在HQL查询语句中绑定参数  17.1.13 设置查询附属事项  17.1.14 在映射文件中定义命名查询语句  17.1.15 在HQL查询语句中调用函数  17.2 设定查询条件  17.2.1 比较运算  17.2.2 范围运算  17.2.3 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     17.1.12 在HQL查询语句中绑定参数  17.1.13 设置查询附属事项  17.1.14 在映射文件中定义命名查询语句  17.1.15 在HQL查询语句中调用函数  17.2 设定查询条件  17.2.1 比较运算  17.2.2 范围运算  17.2.3 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     17.1.12 在HQL查询语句中绑定参数  17.1.13 设置查询附属事项  17.1.14 在映射文件中定义命名查询语句  17.1.15 在HQL查询语句中调用函数  17.2 设定查询条件  17.2.1 比较运算  17.2.2 范围运算  17.2.3 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     17.1.12 在HQL查询语句中绑定参数  17.1.13 设置查询附属事项  17.1.14 在映射文件中定义命名查询语句  17.1.15 在HQL查询语句中调用函数  17.2 设定查询条件  17.2.1 比较运算  17.2.2 范围运算  17.2.3 ...

Global site tag (gtag.js) - Google Analytics