java時斷時續之————Hibernate

來源:互聯網
上載者:User

1、感受MyEclipse的強大,只需要右鍵為工程增加 Hibernate功能即可快速應用Hibernate

2、記住為表名逆向工程產生對象時, 如果要修改對象名,最好要帶上對應的包名

3、產生的config檔案預設放置在 根目錄下,路徑可以在sessionfactory中指定

4、sessionfactory類用於建立hibernate session, session相當於jdbc中的connection,它具有open,close,begintrans,commitrans,rollbacktrans方法

5、ThreadLocal的應用場合,我覺得最適合的是按線程多執行個體(每個線程對應一個執行個體)的對象的訪問,並且這個對象很多地方都要用到。

    public static Session getSession() throws HibernateException {
        Session session = (Session) threadLocal.get();

  if (session == null || !session.isOpen()) {
   if (sessionFactory == null) {
    rebuildSessionFactory();
   }
   session = (sessionFactory != null) ? sessionFactory.openSession()
     : null;
   threadLocal.set(session);
  }

        return session;
    }

6、public REmployee findById(java.lang.String id) 通過主鍵尋找

 

7、Hibernate三大功能:a、or-mapping ,  b、屏蔽掉資料庫 ,c、緩衝

       

1、OrMapping會影響刪除時的效率

這裡要注意的是大量操作時要適時對session進行flush操作避免OutOfMenoryError.刪除:刪除我主要說大量刪除,Hibernate在進行大量刪除前,首先必須將所有合格資料載入到記憶體中(這是所有ORM架構必須面對的問題,這樣主要是為了對目前的內部緩衝和二級緩衝中資料進行整理,以儲存和資料庫的一致性)這樣就面對這如果操作資料量過大,也會出現OutOfMenoryError,所以推薦使用迭代刪除。

 

hibernate緩衝機制:

一級緩衝:session層級的緩衝

hibernate的session提供了一級緩衝,每個session,對同一個id進行兩次load,不會發送兩條sql給資料庫,但是session關閉的時候,一級緩衝就失效了。

二級緩衝:SessionFactory層級的全域緩衝,

 

 

緩衝可以簡單的看成一個Map,通過key在緩衝裡面找value。

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.