笑看風云

          一切從頭開始
          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;
                  }
                 
              }

          }


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


          網站導航:
           
          主站蜘蛛池模板: 卓资县| 丰宁| 澎湖县| 时尚| 金山区| 方城县| 华蓥市| 浦东新区| 原平市| 富裕县| 开平市| 昌都县| 香河县| 沂源县| 汝南县| 黄梅县| 溆浦县| 鄢陵县| 浏阳市| 平阴县| 敦化市| 西乌珠穆沁旗| 安达市| 板桥市| 永善县| 尚义县| 永福县| 五河县| 韩城市| 天长市| 京山县| 扶余县| 石门县| 灵寿县| 玉环县| 博白县| 新邵县| 同心县| 石台县| 普陀区| 泰州市|