有關(guān)Hibernate優(yōu)點(diǎn)和缺點(diǎn)的闡述
下面就Hibernate優(yōu)缺點(diǎn)分別進(jìn)行簡(jiǎn)單的闡述。
1.Hibernate優(yōu)點(diǎn):
(1)對(duì)象/關(guān)系數(shù)據(jù)庫(kù)映射(Basic O/R Mapping)
它使用時(shí)只需要操縱對(duì)象,使開(kāi)發(fā)更對(duì)象化,拋棄了數(shù)據(jù)庫(kù)中心的思想,完全的面向?qū)ο笏枷搿?/P>
(2)透明持久化(Persistent)
帶有持久化狀態(tài)的、具有業(yè)務(wù)功能的單線(xiàn)程對(duì)象,此對(duì)象生存期很短。這些對(duì)象可能是普通的JavaBeans/POJO,這個(gè)對(duì)象沒(méi)有實(shí)現(xiàn)第三方框架或者接口,唯一特殊的是他們正與(僅僅一個(gè))Session相關(guān)聯(lián)。一旦這個(gè)Session被關(guān)閉,這些對(duì)象就會(huì)脫離持久化狀態(tài),這樣就可被應(yīng)用程序的任何層自由使用。(例如,用作跟表示層打交道的數(shù)據(jù)傳輸對(duì)象。)
(3)事務(wù)Transaction (org.Hibernate.Transaction)
應(yīng)用程序用來(lái)指定原子操作單元范圍的對(duì)象,它是單線(xiàn)程的,生命周期很短。它通過(guò)抽象將應(yīng)用從底層具體的JDBC、JTA以及CORBA事務(wù)隔離開(kāi)。某些情況下,一個(gè)Session之內(nèi)可能包含多個(gè)Transaction對(duì)象。盡管是否使用該對(duì)象是可選的,但無(wú)論是使用底層的API還是使用Transaction對(duì)象,事務(wù)邊界的開(kāi)啟與關(guān)閉是必不可少的。
(4)它沒(méi)有侵入性,即所謂的輕量級(jí)框架。
(5)移植性會(huì)很好。
(6)緩存機(jī)制。提供一級(jí)緩存和二級(jí)緩存。
(7)簡(jiǎn)潔的HQL編程。
2.Hibernate缺點(diǎn):
(1)Hibernate在批量數(shù)據(jù)處理的時(shí)候是有弱勢(shì)。
(2)針對(duì)某一對(duì)象(單個(gè)對(duì)象)簡(jiǎn)單的查\改\刪\增,不是批量修改、刪除,適合用Hibernate;而對(duì)于批量修改、刪除,不適合用Hibernate,這也是OR框架的弱點(diǎn);要使用數(shù)據(jù)庫(kù)的特定優(yōu)化機(jī)制的時(shí)候,不適合用Hibernate。
以上便是我所熟悉的Hibernate的優(yōu)缺點(diǎn)。
【編輯推薦】