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

          常用鏈接

          留言簿

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          通用的增刪該查工具類  可在dao層 new一個
          CommonCrudUtil(本類)實例  實現(xiàn)對數(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 要保存的對象
               */
              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 要查詢的對象的 可序列化的字段 (本設(shè)計指主鍵 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 要查詢的對象的類型
               */
              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 要刪除的對象的 唯一標(biāo)識(可序列化)字段 (指主鍵 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)用實現(xiàn)   dao層的實現(xiàn)類調(diào)用 
             CommonCrudUtil  的方法實現(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) 評論(1)  編輯  收藏

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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 嫩江县| 特克斯县| 临邑县| 七台河市| 江门市| 巴彦县| 昌黎县| 黔西县| 安徽省| 阿坝县| 突泉县| 华坪县| 富蕴县| 含山县| 阿克苏市| 玉树县| 景洪市| 夏河县| 嘉禾县| 中宁县| 称多县| 曲水县| 灵川县| 休宁县| 五寨县| 九江市| 沁源县| 镇巴县| 江孜县| 通山县| 永安市| 浑源县| 靖边县| 广水市| 辽阳县| 峨眉山市| 金湖县| 青河县| 淄博市| 道孚县| 陕西省|