明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

性能、規(guī)模、風(fēng)險(xiǎn) 初評hibernate

[摘要]業(yè)務(wù)邏輯層下的ORM層用什么,有人推薦Hibernate,也有人對此持否定態(tài)度,所以決定先了解一下,以下是我看了幾天文檔后的一些體會,可能有點(diǎn)悲觀。1,Hibernate究竟能用到多大的項(xiàng)目?什么是多大,這很難說,我想應(yīng)該是數(shù)據(jù)庫表比較多,業(yè)務(wù)邏輯比較復(fù)雜(表關(guān)聯(lián)復(fù)雜),而且要求性能比較高吧。其他...

業(yè)務(wù)邏輯層下的ORM層用什么,有人推薦Hibernate,也有人對此持否定態(tài)度,所以決定先了解一下,以下是我看了幾天文檔后的一些體會,可能有點(diǎn)悲觀。

1,Hibernate究竟能用到多大的項(xiàng)目?

什么是多大,這很難說,我想應(yīng)該是數(shù)據(jù)庫表比較多,業(yè)務(wù)邏輯比較復(fù)雜(表關(guān)聯(lián)復(fù)雜),而且要求性能比較高吧。其他行業(yè)我不知道,電信行業(yè)軟件都該是如此。據(jù)我了解,這樣的數(shù)據(jù)庫訪問(尤其是頻繁發(fā)生的交易)通常需要用存促過程來解決,甭說自己寫java的JDBC了,更不用提用Hibernate來解決。所以肯定有個適用范圍的問題,希望已經(jīng)熟練hibernate,并做個一些項(xiàng)目的人的人給予幫助解決

2 Hibernate性能會多好?

很多人都說Hibernate性能好,無非是它的一些cache功能,姑且不討論是否有這樣的最佳實(shí)踐(希望國內(nèi)有人能提出best practices,或者pattern),單從cache本身來說,也并不是有了就好,否則,也不會出現(xiàn)分布式cache。就像長輩成天嘮叨這,嘮叨那,我表面認(rèn)為那是對你好,其實(shí)你自己心里甭說又多煩惱了。hibernate為了解決方方面面的性能,而提供了方方面面的特性,但這些加在一起就不是好事情了

3 DBA贊同在項(xiàng)目中使用Hibernate么?

我不是DBA,甚至對寫sql語句都不熟悉,所以有時(shí)候?qū)慏AO的時(shí)候經(jīng)常請教DBA,DBA也很習(xí)慣的在DAO中找到他們熟悉的SQL(而不是HQL),我想這是DBA不提倡Hibernate的一個原因。另外一個原因是在于數(shù)據(jù)庫本生就是一個十全十美的系統(tǒng),無論其性能還是伸縮性(我想沒人反對我的觀點(diǎn)吧),因此DBA深信,能把問題交給數(shù)據(jù)庫是最好的。因此他們不會贊同一切都依賴Hibernate。這個觀點(diǎn)也希望懂Hibernate的DBA給予證實(shí)

EJB的歷史使不少人都以懷疑的態(tài)度來看待Hibernate,以前EJB怎么成功的,Hibernate也在走這樣的路,所以,我不太相信評測,只是希望一且能從實(shí)踐出發(fā),讓hibernate能減少開發(fā)人員工作量,以及減少用它的風(fēng)險(xiǎn)。