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

          常用鏈接

          留言簿

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          通用的增刪該查工具類  可在dao層 new一個(gè)
          CommonCrudUtil(本類)實(shí)例  實(shí)現(xiàn)對(duì)數(shù)據(jù)的增刪改查




          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 要保存的對(duì)象
               */
              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 要查詢對(duì)象的類型  obj 要查詢的對(duì)象的 可序列化的字段 (本設(shè)計(jì)指主鍵 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();
                  }        
              }    
              /**
               * 查詢?nèi)抗δ?br />     * @param clazz 要查詢的對(duì)象的類型
               */
              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 要更新的對(duì)象
               */
              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 要?jiǎng)h除的對(duì)象的類型 obj 要?jiǎng)h除的對(duì)象的 唯一標(biāo)識(shí)(可序列化)字段 (指主鍵 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;
              }
              
          }



          調(diào)用實(shí)現(xiàn)   dao層的實(shí)現(xiàn)類調(diào)用 
             CommonCrudUtil  的方法實(shí)現(xiàn)增刪改查

          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);
              。。。。。。查詢?nèi)俊!!!!?br />
               crud.retrieve(IDCard.class);

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



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




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

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

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 广丰县| 六盘水市| 鄯善县| 武威市| 东乌珠穆沁旗| 察哈| 咸丰县| 凤山市| 广安市| 任丘市| 南郑县| 徐州市| 台山市| 独山县| 循化| 曲阳县| 铁岭市| 商水县| 浦县| 遵义市| 济源市| 鹰潭市| 乌拉特后旗| 太湖县| 沾化县| 祁门县| 长乐市| 应用必备| 且末县| 莒南县| 阿勒泰市| 遂川县| 鸡东县| 仲巴县| 湖南省| 上虞市| 应城市| 攀枝花市| 嘉义市| 永安市| 新野县|