Spring的回調HibernateCallBack方法

          Posted on 2007-09-19 13:25 優雅Dě頽廢 閱讀(843) 評論(0)  編輯  收藏 所屬分類: Spring
          Spring用回調HibernateCallBack方法實現持久層一些功能,當這些功能不能滿足需求時,我們也可以自已來重寫HibernateCallBack,例:
          public class UsersDAO extends HibernateDaoSupport {
          ......
          public List getUsers() {
          return getHibernateTemplate().executeFind(new HibernateCallback() {
          public Object doInHibernate(Session s) throws HibernateException,
          SQLException {
          Query query = s.createQuery("From Users AS user ORDER BY user.username DESC");
          List list = query.list();
          return list;
          }
          });
          }
          ......
          }
          但是這樣的代碼很難讓人理解,可以將其打包
          package com.notepad.comm;
          import java.sql.SQLException;
          import org.hibernate.HibernateException;
          import org.hibernate.Session;
          import org.springframework.orm.hibernate3.HibernateCallback;
          public class HQLCallBackUtil implements HibernateCallback {
          private String hql;

          public HQLCallBackUtil(){

          }

          public HQLCallBackUtil(String hql){
          this.hql=hql;
          }
          public String getHql() {
          return hql;
          }
          public void setHql(String hql) {
          this.hql = hql;
          }
          public Object doInHibernate(Session s) throws HibernateException,
          SQLException {
          if (hql == null || hql.equals("")) {
          throw new HibernateException("Can't execute NULL hql!");
          }
          return s.createQuery(hql).list();
          }
          }
          然后可以通過如下代碼進行調用
          public class UsersDAO extends HibernateDaoSupport {
          ......
          public List getUsers() {
          HQLCallBackUtil callBack=new HQLCallBackUtil();
          callBack.setHql("From Users AS user ORDER BY user.username DESC");
          return this.getHibernateTemplate().executeFind(callBack);
          }
          ......
          }

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          posts - 13, comments - 1, trackbacks - 0, articles - 0

          Copyright © 優雅Dě頽廢

          主站蜘蛛池模板: 平和县| 连江县| 曲麻莱县| 双柏县| 杭锦后旗| 兰州市| 卢湾区| 辉南县| 大足县| 保康县| 浙江省| 朔州市| 乌苏市| 宁南县| 四川省| 新建县| 蒲城县| 醴陵市| 磴口县| 洞口县| 海淀区| 日照市| 永登县| 教育| 绥宁县| 霍城县| 阿巴嘎旗| 招远市| 佛冈县| 朔州市| 台州市| 秭归县| 济源市| 铜川市| 长宁县| 小金县| 上蔡县| 大庆市| 新乐市| 云浮市| 莱州市|