Spring的回調(diào)HibernateCallBack方法

          Posted on 2007-09-19 13:25 優(yōu)雅Dě頽廢 閱讀(843) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Spring
          Spring用回調(diào)HibernateCallBack方法實(shí)現(xiàn)持久層一些功能,當(dāng)這些功能不能滿(mǎn)足需求時(shí),我們也可以自已來(lái)重寫(xiě)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();
          }
          }
          然后可以通過(guò)如下代碼進(jìn)行調(diào)用
          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);
          }
          ......
          }

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

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

          Copyright © 優(yōu)雅Dě頽廢

          主站蜘蛛池模板: 晴隆县| 安溪县| 枣庄市| 万宁市| 炎陵县| 绥阳县| 三台县| 靖远县| 兰坪| 收藏| 永德县| 新龙县| 邹平县| 闽侯县| 平定县| 贵南县| 莱阳市| 巍山| 尉氏县| 桓仁| 临朐县| 贵南县| 丰城市| 象州县| 张家口市| 秭归县| 碌曲县| 怀仁县| 龙海市| 南澳县| 噶尔县| 文化| 石景山区| 松原市| 抚松县| 南和县| 日喀则市| 紫阳县| 凤山县| 光泽县| 海宁市|