隨筆 - 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
          一起交流  回復  更多評論
            

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


          網站導航:
           
          主站蜘蛛池模板: 准格尔旗| 县级市| 漳州市| 海丰县| 蓬溪县| 北川| 望江县| 岳西县| 电白县| 麟游县| 台北县| 平塘县| 慈利县| 定远县| 怀柔区| 区。| 澄江县| 昭通市| 治县。| 平湖市| 乌什县| 博罗县| 克什克腾旗| 鄯善县| 墨脱县| 涟水县| 日土县| 罗源县| 芒康县| 文水县| 枝江市| 剑河县| 潼关县| 嘉兴市| 得荣县| 邛崃市| 长顺县| 德保县| 乐山市| 肇庆市| 固镇县|