zoukankan      html  css  js  c++  java
  • 集成Spring后HibernateTemplate实现分页

    spring 整合 hibernate 时候用的 HibernateTemplate 不支持分页,因此需要自己包装一个类进行分页,具体实现如下...使用spring的hibernateTemplate的回调机制扩展hibernateTemplate的功能实现分页

    /**   
    * 使用hql 语句进行操作   
      
       * @param hql   
    * @param offset   
    * @param length   
    * @return List   
    */    
    public List getListForPage(final String hql, final int offset,     
        final int length) {     
       List list = getHibernateTemplate().executeFind(new HibernateCallback() {     
        public Object doInHibernate(Session session)     
          throws HibernateException, SQLException {     
         Query query = session.createQuery(hql);     
         query.setFirstResult(offset);     
         query.setMaxResults(length);     
         List list = query.list();     
         return list;     
        }     
       });     
       return list;     
    }/**   
    * 使用criterion进行操作   
    * @param arg   
    * @param criterions   
    * @param offset   
    * @param length   
    * @return List   
    */    
    protected List getListForPage(final Class arg, final Criterion[] criterions,final int offset, final int length) {     
       List list = getHibernateTemplate().executeFind(new HibernateCallback() {     
        public Object doInHibernate(Session session)     
          throws HibernateException, SQLException {     
         Criteria criteria = session.createCriteria(arg);     
         //循环遍历添加约束条件     
         for (int i = 0; i < criterions.length; i++) {     
          criteria.add(criterions[i]);     
         }     
         criteria.setFirstResult(offset);     
         criteria.setMaxResults(length);     
         return criteria.list();     
        }     
       });     
       return list;     
    }     
        
    // 获得集合的总数(聚合查询)     
        public Integer getSaleChanceListCount() {     
            final String hql = "select count(*) from SaleChanceInfo si";     
            Integer result = null;     
            result = (Integer)getHibernateTemplate().execute(new HibernateCallback() {     
        
                public Object doInHibernate(Session arg0)     
                        throws HibernateException, SQLException {     
                    Query query = arg0.createQuery(hql);     
                    return query.uniqueResult();     
                }     
        
            });     
            return result;     
        }    
  • 相关阅读:
    ios系统滚动穿透
    移动h5 开发遇到ios系统的各种问题汇总
    移动端选择时间时软键盘弹出问题
    ios系统设置-webkit-overflow-scrolling: touch导致z-index 失效 (弹窗层级设置无效)- 替代方案
    npm i 报错 npmERR! code Z_BUF_ERROR errno -5 // 后继 chromedriver.zip 相关问题报错解决
    mysql、orcale、sql server的区别
    jsp中的select选择
    sql面试
    java面试题
    struts2总结
  • 原文地址:https://www.cnblogs.com/yw-ah/p/5811337.html
Copyright © 2011-2022 走看看