Spring用回調(diào)HibernateCallBack方法實(shí)現(xiàn)持久層一些功能,當(dāng)這些功能不能滿足需求時(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è)用戶登錄后才能發(fā)表評(píng)論。


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

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

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

          主站蜘蛛池模板: 黄骅市| 沿河| 丹阳市| 永修县| 河间市| 常山县| 昭觉县| 托克逊县| 繁峙县| 陈巴尔虎旗| 无极县| 泊头市| 屯留县| 连南| 五家渠市| 曲麻莱县| 师宗县| 含山县| 额济纳旗| 弥渡县| 广饶县| 古浪县| 宜君县| 普陀区| 阿克苏市| 鱼台县| 巩留县| 镶黄旗| 乐业县| 米脂县| 山阴县| 石城县| 卫辉市| 商丘市| 吉首市| 鹿邑县| 宜春市| 常熟市| 永泰县| 香河县| 阜新|