隨筆 - 7  文章 - 3  trackbacks - 0
          <2011年12月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          通用的增刪該查工具類  可在dao層 new一個
          CommonCrudUtil(本類)實例  實現對數據的增刪改查




          package com.XXXXX.util;

          import java.io.Serializable;
          import java.util.ArrayList;
          import java.util.List;
          import org.hibernate.*;
          /**
           * 通用增刪改查工具類
           * @author 王代軍
           * @since Dec 19,2011
           * @version 1.0
           */
          @SuppressWarnings("unchecked")
          public class CommonCrudUtil<T> {
              /**
               * 添加功能
               * @param obj 要保存的對象
               */
              public boolean create(Object obj){
                  Session session=HibernateSessionFactory.getSession();
                  Transaction tx=null;
                  boolean flag=false;
                  try{
                      tx=session.beginTransaction();
                      session.persist(obj);
                      tx.commit();
                      flag=true;
                  }catch(Exception e){
                      e.printStackTrace();
                      if(tx!=null){        
                          tx.rollback();
                      }
                  }finally{
                      session.close();
                  }    
                  return flag;
              }
              /**
               * 查詢功能
               * @param clazz 要查詢對象的類型  obj 要查詢的對象的 可序列化的字段 (本設計指主鍵 id)
               */
              public Object retrieve(Class clazz,Object obj){
                  Session session=HibernateSessionFactory.getSession();
                  Transaction tx=null;
                  try{
                      tx=session.beginTransaction();
                      Object object=session.get(clazz,(Serializable) obj);
                      tx.commit();
                      return object;
                  }catch(Exception e){
                      e.printStackTrace();
                      if(tx!=null){        
                          tx.rollback();
                      }
                      return null;
                  }finally{
                      session.close();
                  }        
              }    
              /**
               * 查詢全部功能
               * @param clazz 要查詢的對象的類型
               */
              public List<T> retrieve(Class clazz){
                  Session session=HibernateSessionFactory.getSession();
                  List<T> list=new ArrayList<T>();
                  Transaction tx=null;
                  try{
                      tx=session.beginTransaction();
                      Criteria cr=session.createCriteria(clazz);
                      list=cr.list();
                      tx.commit();
                      return list;
                  }catch(Exception e){
                      e.printStackTrace();
                      if(tx!=null){            
                          tx.rollback();
                      }
                      return null;
                  }finally{
                      session.close();
                  }
              }
              /**
               * 更新功能
               * @param obj 要更新的對象
               */
              public boolean update(Object obj){
                  Session session=HibernateSessionFactory.getSession();
                  boolean flag=false;
                  Transaction tx=null;
                  try{
                      tx=session.beginTransaction();
                      session.update(obj);
                      tx.commit();
                      flag=true;
                  }catch(Exception e){
                      e.printStackTrace();
                      if(tx!=null){            
                          tx.rollback();
                      }
                  }finally{
                      session.close();
                  }
                  return flag;
              }
              /**
               * 刪除功能
               * @param clazz 要刪除的對象的類型 obj 要刪除的對象的 唯一標識(可序列化)字段 (指主鍵 id)
               */
              public boolean delete(Class clazz,Object obj){
                  Session session=HibernateSessionFactory.getSession();
                  Transaction tx=null;
                  boolean flag=false;
                  try{
                      tx=session.beginTransaction();
                      Object object=session.get(clazz,(Serializable) obj);
                      session.delete(object);
                      tx.commit();
                      flag=true;
                  }catch(Exception e){
                      e.printStackTrace();
                      if(tx!=null){        
                          tx.rollback();
                      }
                  }finally{
                      session.close();
                  }    
                  return flag;
              }
              
          }



          調用實現   dao層的實現類調用 
             CommonCrudUtil  的方法實現增刪改查

          import java.util.Date;
          import java.util.List;

          import org.hibernate.Query;
          import com.zhongyou.bean.IDCard;
          import com.zhongyou.util.CommonCrudUtil;

          public class IDCardDaoImpl implements IDCardDaoIf {

              
               CommonCrudUtil crud=new CommonCrudUtil<IDCard>();
             
               public int addInformation(IDCard card) {

               IDCard card=new IDCard();
               card.setId(16);
               card.setName("xiaoxiao");
               card.setAddress("xiaoxiao");
               card.setBirthday(new Date());
               card.setNumber("29472398734");
               card.setSex("男");


               crud.create(card);//增加.......

          }
           
               。。。。。。查詢。。。。。
               crud.retrieve(IDCard.class,3);
              。。。。。。查詢全部。。。。。
               crud.retrieve(IDCard.class);

              。。。。。。修改。。。。
               crud.update(card);
              。。。。。。刪除。。。。
               crud.delete(IDCard.class,3);
          。。。。。。。。。



          寫的簡陋些  只是些想法可借鑒而已 同志們 可以自己完善。。。。




          posted on 2011-12-26 13:22 Tomas 閱讀(2012) 評論(1)  編輯  收藏

          FeedBack:
          # re: hibernate 通用的增該查 工具類 供Dao層使用 2011-12-29 12:49 SwiftDAO
          我也做過了一個:SwiftDAO
          http://code.google.com/p/swiftdao
          一起交流  回復  更多評論
            

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


          網站導航:
           
          主站蜘蛛池模板: 乌拉特中旗| 恭城| 化德县| 凌云县| 柞水县| 德令哈市| 成都市| 呼伦贝尔市| 清水县| 莒南县| 宝兴县| 惠州市| 西丰县| 杭锦旗| 义马市| 上虞市| 舞钢市| 驻马店市| 澄迈县| 荥阳市| 绥棱县| 商都县| 普兰县| 桃江县| 溧水县| 禄丰县| 瑞昌市| 贵阳市| 双鸭山市| 陇川县| 赣州市| 泾川县| 宁明县| 射阳县| 重庆市| 衡水市| 万载县| 华安县| 鄂州市| 茶陵县| 南漳县|