笑看風云

          一切從頭開始
          posts - 28, comments - 1, trackbacks - 0, articles - 2

          通用hibernateDAO

          Posted on 2008-07-03 10:33 笑看風云 閱讀(889) 評論(0)  編輯  收藏 所屬分類: hibernate

          package com.addressdemo.hibernate.dao;

          import java.io.Serializable;
          import java.util.List;

          import org.hibernate.Query;
          import org.hibernate.Session;

          import com.addressdemo.HibernateSessionFactory;

          public class BaseDAO {
             /** *//**
               * 添加實體
               * @param obj,要添加的實體對象
               * @throws Exception
               */
              public void add(Object obj) throws Exception{
                  Session session = null;
                  try {
                      session = HibernateSessionFactory.getSession();
                      session.save(obj);
                      session.beginTransaction().commit();
                      if(session!=null){
                            session.close();
                      }
                  } catch (RuntimeException e) {
                      session.beginTransaction().rollback();
                      if(session!=null){
                            session.close();
                      }
                      throw e;
                  }
              }
             
              /** *//**
               * 刪除實體
               * @param obj,要刪除的實體
               * @throws Exception
               */
              public void delete(Object obj) throws Exception{
                  Session session = null;
                  try {
                      //取得session對象
                      session =HibernateSessionFactory.getSession();
                      //刪除實體
                      session.delete(obj);
                      //提交事務
                      session.beginTransaction().commit();
                      if(session!=null){
                            session.close();
                      }
                  } catch (Exception e) {
                      session.beginTransaction().rollback();//事務回滾
                      if(session!=null){
                            session.close();
                      }
                      throw e;
                  }
              }

              /** *//**
               * 更新實體
               * @param obj,要更新的實體
               * @throws Exception
               */
              public void update(Object obj) throws Exception{
                  Session session=null;
                  try {
                      //取得session對象
                      session=HibernateSessionFactory.getSession();
                      //刪除實體
                      session.update(obj);
                      //提交事務
                      session.beginTransaction().commit();
                      if(session!=null){
                            session.close();
                      }
                  } catch (Exception e) {
                      session.beginTransaction().rollback();//事務回滾
                      if(session!=null){
                        session.close();
                      }
                      throw e;
                  }
              }
             
              /** *//**
               * 根據指定的hql進行查詢,并返回查詢結果
               * @param hql,hql語句
               * @return 查詢結果
               * @throws Exception
               */
              public List<?> findByHQL(String hql) throws Exception{
                  try {
                      Query queryObject =HibernateSessionFactory.getSession().createQuery(hql);
                      return queryObject.list();
                  } catch (Exception e) {
                      throw e;
                  }
              }
              /** *//**
               * 根據指定的實體類型和主鍵的值,查找實體對象
               * @param cls,實體的類
               * @param key,主鍵的值
               * @return,查找的實體對象
               * @throws Exception
               */
              public Object findById(String cls,Serializable key)
                  throws Exception
              {
                  try {
                      Object instance = (Object) HibernateSessionFactory.getSession().get(cls, key);
                      return instance;
                  } catch (Exception e) {
                      throw e;
                  }
                 
              }

          }


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


          網站導航:
           
          主站蜘蛛池模板: 正镶白旗| 日照市| 馆陶县| 安化县| 葫芦岛市| 孝义市| 白水县| 奉贤区| 会理县| 高清| 瑞金市| 韶山市| 石门县| 儋州市| 武宣县| 三亚市| 佛山市| 济宁市| 广宁县| 九江市| 怀柔区| 博白县| 东阳市| 布尔津县| 彭水| 济南市| 商都县| 清远市| 同江市| 赤峰市| 康定县| 兰西县| 宁陕县| 诸暨市| 宣恩县| 铜梁县| 永昌县| 昌黎县| 象山县| 梓潼县| 津市市|