優點:
一、物件導向:hibernate可以讓開發人員以物件導向的思想來運算元據庫。jdbc只能通過sql語句將元資料傳送給資料庫,進行資料操作。而hibernate可以在底層對元資料和物件進行轉化,使得開發者只用物件導向的方式來訪問資料即可。二、移植性:hibernate使用xml或jpa的配置以及資料庫方言等等的機制,使得hibernate具有更好的移植性,對於不同的資料庫,開發者只需要使用相同的資料操作即可,無需關心資料庫之間的差異。而直接使用jdbc就不得不考慮資料庫差異的問題。
三、封裝性:hibernate提供了大量的封裝(這也是它最大的缺點),很多資料操作以及關聯關係等都被封裝的很好,開發者不需寫大量的sql語句,這就極大的提高了開發者的開發效率。
四、快取機制:hibernate提供了快取機制(session快取,二級快取,查詢快取),對於那些改動不大且經常使用的資料,可以將它們放到快取中,不必在每次使用時都去查詢資料庫,快取機制對提公升效能大有裨益。
缺點:一、對hibernate而言,它對jdbc封裝過於厲害,所以就失去了對sql的控制(當然hibernate也可以使用native sql既使用createsqlquery等方法來呼叫與資料庫相關的sql,但這樣一來也就影響了hibernate的可移植性),使得hibernate的在很多地方不夠靈活,難於優化,尤其對於一些複雜的關聯查詢時,hibernate提供的功能遠不及直接使用jdbc方便效能更高。
二、hibernate沒有提供專門的批處理機制,如果要批量更新或插入資料時,還需要顯示的flush,clear之類的操作,效能不如jdbc。
三、相對於jdbc,hibernate更消耗記憶體,因為它每次的資料庫操作都要做資料和物件的轉換/封裝,查詢出一條資料就要建立乙個或多個物件,這樣也太消耗記憶體了。
hibernate與jdbc的區別(簡略)
今天看了看老師給的專案,其中的對資料的查詢跟我想象中的不一樣,所以就找了一些資料,大概清楚了這是個啥東西 就當做筆記吧 hibernate 物件導向的物件關係對映框架 hql hibernate query language,hibernate查詢語言 sql structured query la...
Hibernate與Jdbc的效率測試
首先,建資料庫表,採用mysql資料庫。create table t jobstat id bigint 20 unsigned not null auto increment,jobno varchar 45 default null,clicksum int 10 unsigned defaul...
hibernate4使用原生jdbc進行批處理
在hibernate中,有一級快取session和二級快取sessionfactory這些機制,一方面為編碼提供了便利,同時也會有一些 比如有較大的資料量互動的話,快取反而會降低效率。最近在做乙個有關批量更新的程式,在呼叫session.update 之後,物件會儲存在快取中,如果資料量超過快取的容...