Hibernate SessionFactory實(shí)例
在向大家詳細(xì)介紹Hibernate之前,首先讓大家了解下Hibernate SessionFactory實(shí)例,以后全面介紹Hibernate。
SessionFactory (org.hibernate.SessionFactory)包含已經(jīng)編譯的映射(mappings),是制造session的工廠,可能含有一些可以在各個(gè)事務(wù)(transaction)之間共享的數(shù)據(jù)
(1) SessionFactory的緩存
可分為兩類:內(nèi)置緩存和外置緩存。SessionFactory的內(nèi)置緩存中存放了Hibernate配置信息和映射元數(shù)據(jù)信息、同時(shí)也緩存了Hibernate自動(dòng)生成的SQL語句等;SessionFactory的外置緩存是一個(gè)可配置的緩存插件,在默認(rèn)情況下,SessionFactory不會啟用這個(gè)緩存插件。外置緩存
能存放大量數(shù)據(jù)庫數(shù)據(jù)的拷貝,外置緩存的物理介質(zhì)可以是內(nèi)存或者硬盤。
(2) 只有一個(gè)數(shù)據(jù)存儲源,只需創(chuàng)建一個(gè)SessionFactory。SessionFactory就是個(gè)重量級對象,如果應(yīng)用只有一個(gè)數(shù)據(jù)存儲源,只需創(chuàng)建一個(gè)Hibernate SessionFactory實(shí)例,因?yàn)殡S意地創(chuàng)建Hibernate SessionFactory實(shí)例會占用大量內(nèi)存空間。但是當(dāng)你的項(xiàng)目要操作多個(gè)數(shù)據(jù)庫時(shí),那你必須為每個(gè)數(shù)據(jù)庫指定一個(gè)SessionFactory。
(3) Configuration的其他用法
Configuration的configure ()方法還支持帶參數(shù)的訪問方式,你可以指定hbm.xml文件的位置,而不是使用默認(rèn)的classpath
下面的hibernate.cfg.xml這種方式,例如:
- Configuration cfg = new Configuration().configure("myexample.xml");
【編輯推薦】