<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    秋風的蕭瑟 又見湖邊木葉飛

    歡迎來到梁良 | LonBlog,這里記錄下了我生活點點滴滴。

    Hibernate DAO中的幾個方法

    * save()方法提供了向數據庫中添加數據的功能,但只能添加,這個DAO沒有生成Update()的方法
    * 但你可以簡單的八save()方法改稱具有Update功能:將getSession().save * (transientInstance);這句改成
    * getSession().merge(transientInstance);或者getSession().saveOrUpdate
    *  (transientInstance); 

    public void save(User transientInstance) {
      log.debug("saving User instance");
      try {
       Session session=getSession();
       Transaction tx=session.beginTransaction();
       session.save(transientInstance);
       tx.commit();
       session.close();
       log.debug("save successful");
      } catch (RuntimeException re) {
       log.error("save failed", re);
       throw re;
      }
     }


    delete()方法用來刪除的 實際上我們會用下邊的這個方法進行刪除

    public void delete(Integer id){
      log.debug("deleting User instance…");
      User user=findById(id);
      delete(user);
     }
     
     public void delete(User persistentInstance) {
      log.debug("deleting User instance");
      try {
       Session session=getSession();
       Transaction tx=session.beginTransaction();
       session.delete(persistentInstance);
       tx.commit();
       session.close();
       log.debug("delete successful");
      } catch (RuntimeException re) {
       log.error("delete failed", re);
       throw re;
      }
     }

    根據編號進行查找

     public User findById(java.lang.Integer id) {
      log.debug("getting User instance with id: " + id);
      try {
       User instance = (User) getSession().get("hbm.User", id);
       return instance;
      } catch (RuntimeException re) {
       log.error("get failed", re);
       throw re;
      }
     }

    findByExample()方法實現的功能相當于"select * from Usertable"實現的功能就是查詢所有 數據.

     public List findByExample(User instance) {
      log.debug("finding User instance by example");
      try {
       List results = getSession().createCriteria("hbm.User").add(
         Example.create(instance)).list();
       log.debug("find by example successful, result size: "
         + results.size());
       return results;
      } catch (RuntimeException re) {
       log.error("find by example failed", re);
       throw re;
      }
     }

    findByProperty()方法用來靈活的提供一種按條件查詢的方法,你可以自己定義要按什么樣的方 式查詢.

     public List findByProperty(String propertyName, Object value) {
      log.debug("finding User instance with property: " + propertyName
        + ", value: " + value);
      try {
       String queryString = "from User as model where model."
         + propertyName + "= ?";
       Query queryObject = getSession().createQuery(queryString);
       queryObject.setParameter(0, value);
       return queryObject.list();
      } catch (RuntimeException re) {
       log.error("find by property name failed", re);
       throw re;
      }
     }

     public List findByName(Object name) {
      return findByProperty(NAME, name);
     }

     public List findBySex(Object sex) {
      return findByProperty(SEX, sex);
     }

     public List findByAge(Object age) {
      return findByProperty(AGE, age);
     }

     public List findAll() {
      log.debug("finding all User instances");
      try {
       String queryString = "from User";
       Query queryObject = getSession().createQuery(queryString);
       return queryObject.list();
      } catch (RuntimeException re) {
       log.error("find all failed", re);
       throw re;
      }
     }

    將傳入的detached狀態的對象的屬性復制到持久化對象中,并返回該持久化對象  如果該session中沒有關聯的持久化對象,加載一個,如果傳入對象未保存,保存一個副本并作為持久對象返回,傳入對象依然保持detached狀態。 

    可以用作更新數據

     public User merge(User detachedInstance) {
      log.debug("merging User instance");
      try {

        Session session=getSession();
       Transaction tx=session.beginTransaction();
       
       User result = (User) session.merge(detachedInstance);
       tx.commit();
       session.close();
       log.debug("merge successful");
       return result;
      } catch (RuntimeException re) {
       log.error("merge failed", re);
       throw re;
      }
     }

    將傳入的對象持久化并保存。 如果對象未保存(Transient狀態),調用save方法保存。如果對象已保存(Detached狀態),調用update方法將對象與Session重新關聯。

     public void attachDirty(User instance) {
      log.debug("attaching dirty User instance");
      try {
       getSession().saveOrUpdate(instance);
       log.debug("attach successful");
      } catch (RuntimeException re) {
       log.error("attach failed", re);
       throw re;
      }
     }

    將傳入的對象狀態設置為Transient狀態 

     public void attachClean(User instance) {
      log.debug("attaching clean User instance");
      try {
       getSession().lock(instance, LockMode.NONE);
       log.debug("attach successful");
      } catch (RuntimeException re) {
       log.error("attach failed", re);
       throw re;
      }
     }

    posted on 2010-06-04 11:53 梁良 閱讀(396) 評論(0)  編輯  收藏 所屬分類: SSH


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


    網站導航:
     
    <2010年6月>
    303112345
    6789101112
    13141516171819
    20212223242526
    27282930123
    45678910

    導航

    公告

        歡迎光臨

    常用鏈接

    隨筆分類

    隨筆檔案

    相冊

    .我的網站.

    友情博客

    開源社區

    科技博客

    資料網站

    最新隨筆

    搜索

    最新評論

    閱讀排行榜

    Powered by:
    LonLeung
    Copyright © 梁良

    本頁生成時間:毫秒

    主站蜘蛛池模板: 国产精品亚洲а∨无码播放| 亚洲一区二区三区国产精品无码| 日本免费污片中国特一级| 亚洲视频中文字幕在线| 女人18毛片a级毛片免费视频| 99精品国产成人a∨免费看| 久久亚洲精品无码aⅴ大香 | a一级毛片免费高清在线| 亚洲Av无码专区国产乱码DVD| 日韩一区二区a片免费观看| 日韩在线观看视频免费| 亚洲精品视频专区| 亚洲国产成人精品无码久久久久久综合 | 久久夜色精品国产亚洲AV动态图| 免费人成视频在线| 国产亚洲精品免费视频播放| 中文日韩亚洲欧美制服| 亚洲精品tv久久久久久久久| 天天摸天天碰成人免费视频| 久久福利青草精品资源站免费| 亚洲日韩AV一区二区三区四区| 久久精品国产亚洲AV麻豆王友容| 日本无吗免费一二区| 99久9在线|免费| 日日躁狠狠躁狠狠爱免费视频| 亚洲免费中文字幕| 国产精品亚洲片在线观看不卡| 国产中文字幕免费| 在线观看无码AV网站永久免费| 西西人体免费视频| 黄页网址在线免费观看| 亚洲五月丁香综合视频| 亚洲av永久无码精品表情包| 亚洲人成影院在线观看 | 亚洲系列中文字幕| 亚洲欧洲无码AV电影在线观看| 精品久久久久久久免费人妻| AV无码免费永久在线观看| 波多野结衣免费一区视频| 免费一级做a爰片久久毛片潮| 亚洲色少妇熟女11p|