<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-7  評(píng)論-24  文章-102  trackbacks-0

            HibernateTemplate 只支持 .setMaxResults(int) 方法。
            因此,做 Spring+Hibernate 分頁處理要使用到一個(gè)接口 org.springframework.orm.hibernate3.HibernateCallback
    來靈活操作數(shù)據(jù)庫,該接口中有一個(gè)未實(shí)現(xiàn)的方法 Object doInHibernate (Session session),用以獲得并利用 session 進(jìn)行操作(自動(dòng)創(chuàng)建、銷毀)。

    以下代碼均參考了 使用 HibernateTemplate 實(shí)現(xiàn)分頁查詢 一文。

    /**
     * 
     
    */

    package springdao;

    import hibernatedao.HibernateSessionFactory;
    import java.sql.SQLException;
    import java.util.List;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.hibernate.HibernateException;
    import org.hibernate.Session;
    import org.springframework.orm.hibernate3.HibernateCallback;
    import org.springframework.orm.hibernate3.HibernateTemplate;



    /**
     * 通用 DAO 包
     * 
    @author kiant
     * 
    @version Sep 7, 2008
     
    */

    public class CommomsDAO {
        
    private static final Log log = LogFactory.getLog(EcOpusDAO.class);
        
    //獲得會(huì)話
        private static HibernateTemplate hibernateTemplate = new HibernateTemplate(HibernateSessionFactory.getSessionFactory());
        
        
        
    /**
         * 分頁通用方法
         * 
    @param hql  HQL查詢語句
         * 
    @param offset    起始記錄下標(biāo)
         * 
    @param lengh        讀取記錄數(shù)
         * 
    @return            List 結(jié)果集
         
    */

        
    public static List getListForPage(final String hql, final int offset, final int lengh) {
            log.debug(
    "finding ListForPage");
            
    try {
                List list 
    = hibernateTemplate.executeFind(new HibernateCallback(){

                    
    public Object doInHibernate(Session session)
                            
    throws HibernateException, SQLException {
                        List list2 
    = session.createQuery(hql)
                                .setFirstResult(offset)
                                .setMaxResults(lengh)
                                .list();                    
                        
    return list2;
                    }
    }
    );
                
    return list;
            }
     catch (RuntimeException re) {
                log.error(
    "find ListForPage failed", re);
                
    throw re;
            }

        }

    }



    ps.
    也可以通過:
            this.getSession();
            this.getHibernateTemplate().getSessionFactory().openSession();
    分別獲取 session 進(jìn)行 createQuery()等操作。
    但是這種做法,需要自己去手動(dòng)關(guān)閉session的。所以你需要配置openSessioninview,不推薦使用!
    posted on 2008-09-07 11:25 黃小二 閱讀(3009) 評(píng)論(1)  編輯  收藏 所屬分類: S/S2SH

    評(píng)論:
    # re: 使用 HibernateTemplate 實(shí)現(xiàn)分頁查詢 (HibernateCallback接口) 2014-03-03 22:32 | redcoatjk
    可以強(qiáng)制加載后 close session.
    --------
    此外直接用HibernateTemplate.getSessionFactory.getCurrentSession
    應(yīng)該是可以托管給spring管理的.  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 国产亚洲综合视频| 亚洲男人都懂得羞羞网站| 国产gav成人免费播放视频| 国产成人A亚洲精V品无码| 777亚洲精品乱码久久久久久| 国产亚洲精品欧洲在线观看| 日本特黄特色免费大片| 久久综合九九亚洲一区| AV激情亚洲男人的天堂国语| 久久国产精品萌白酱免费| 麻豆成人精品国产免费| 婷婷久久久亚洲欧洲日产国码AV| 日韩在线视精品在亚洲| 亚洲阿v天堂在线2017免费| 亚洲爆乳精品无码一区二区三区| 亚洲中文字幕无码爆乳app| 一区二区三区在线免费看| 国产成人在线观看免费网站 | 亚洲中文字幕无码一区| 国产成人无码免费网站| 嫩草影院在线免费观看| 亚洲V无码一区二区三区四区观看 亚洲αv久久久噜噜噜噜噜 | 中国好声音第二季免费播放| 最近最好的中文字幕2019免费| 亚洲国产香蕉碰碰人人| 成年黄网站色大免费全看| a级亚洲片精品久久久久久久| 野花香高清视频在线观看免费| 亚洲国产精品日韩专区AV| 曰批全过程免费视频在线观看无码| 亚洲国产成人久久一区WWW| 中文字幕成人免费高清在线视频| 亚洲视频在线一区| 国产成人3p视频免费观看 | 日本视频免费观看| 在线免费观看国产视频| a级大片免费观看| 久久久久久a亚洲欧洲AV| 成年人免费观看视频网站| 三级黄色在线免费观看| 亚洲欧洲日韩国产一区二区三区|