3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
一、原理: 1.通過Configuration.configure;讀取並解析hibernate.cfg.xml配置文件 2.由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>讀取並解析映射信息 3.通過config.buildSessionFactory;//創建SessionFactory 4.sessionFactory.openSession;//打開Sesssion 5.session.beginTransaction;//創建事務Transation 6.persistent operate持久化操作 7.session.getTransaction.commit;//提交事務 8.關閉Session 9.關閉SesstionFactory二、Hibernate的應用(一)、為什麼要用:1. 對JDBC訪問資料庫的代碼做了封裝,大大簡化了數據訪問層繁瑣的重複性代碼。2. Hibernate是一個基於JDBC的主流持久化框架,是一個優秀的ORM實現。他很大程度的簡化DAO層的編碼工作3. hibernate使用Java反射機制,而不是位元組碼增強程序來實現透明性。4. hibernate的性能非常好,因為它是個輕量級框架。映射的靈活性很出色。它支持各種關係資料庫,從一對一到多對多的各種複雜關係。(二)、Hibernate如何延遲載入? 1. Hibernate2延遲載入實現:a)實體對象 b)集合(Collection)2. Hibernate3 提供了屬性的延遲載入功能當Hibernate在查詢數據的時候,數據並沒有存在與內存中,當程序真正對數據的操作時,對象才存在與內存中,就實現了延遲載入,他節省了伺服器的內存開銷,從而提高了伺服器的性能。(三)、Hibernate中怎樣實現類之間的關係?(如:一對多、多對多的關係)類與類之間的關係主要體現在表與表之間的關係進行操作,它們都市對對象進行操作,我們程序中把所有的表與類都映射在一起,它們通過配置文件中的many-to-one、one-to-many、many-to-many。(四)、說下Hibernate的緩存機制1. 內部緩存存在Hibernate中又叫一級緩存,屬於應用事物級緩存2. 二級緩存:a) 應用及緩存b) 分散式緩存條件:數據不會被第三方修改、數據大小在可接受範圍、數據更新頻率低、同一數據被系統頻繁使用、非 關鍵數據 c) 第三方緩存的實現一級緩存:session級的緩存也叫事務級的緩存,只緩存實體,生命周期和session一致。不能對其進行管理,不用顯示的調用。二級緩存:sessionFactory緩存,也叫進程級的緩存,使用第3方插件實現的,也值緩存實體,生命周期和sessionFactory一致,可以進行管理。首先配置第3放插件,我們用的是EHCache,在hibernate.cfg.xml文件中加入<property name="hibernate.cache.user_second_level_cache">true</property>在映射中也要顯示的調用,<cache usage="read-only"/>二級緩存之查詢緩存:對普通屬性進行緩存。如果關聯的表發生了修改,那麼查詢緩存的生命周期也結束了。在程序中必須手動啟用查詢緩存:query.setCacheable(true);/////////(五)、Hibernate的查詢方式 Sql、Criteria,object comptosition Hql: 1、 屬性查詢 2、 參數查詢、命名參數查詢 3、 關聯查詢 4、 分頁查詢 5、 統計函數(六)、如何優化Hibernate? 1.使用雙向一對多關聯,不使用單向一對多 2.靈活使用單向一對多關聯 3.不用一對一,用多對一取代 4.配置對象緩存,不使用集合緩存 5.一對多集合使用Bag,多對多集合使用Set 6. 繼承類使用顯式多態 7. 表欄位要少,表關聯不要怕多,有二級緩存撐腰加微信(858568103)了解更多的前端、Java知識,了解更多的行業信息。

本文由yidianzixun提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦