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。