作為持久層的Hibernate優(yōu)點(diǎn)及缺點(diǎn)
本文通過對(duì)傳統(tǒng)Hibernate構(gòu)架的分析,來闡明Hibernate作為持久層的優(yōu)點(diǎn)及缺點(diǎn)。
傳統(tǒng)的Hibernate架構(gòu):
1) Session Bean <-> Entity Bean <-> DB
為了解決性能障礙的替代架構(gòu):
2) Session Bean <-> DAO <-> JDBC <-> DB
使用Hibernate來提高上面架構(gòu)的開發(fā)效率的架構(gòu):
3) Session Bean <-> DAO <-> Hibernate <-> DB
就上面3個(gè)Hibernate架構(gòu)來分析:
1、內(nèi)存消耗:采用JDBC的架構(gòu)2無疑是最省內(nèi)存的,Hibernate的架構(gòu)3次之,EB的架構(gòu)1最差。
2、運(yùn)行效率:如果JDBC的代碼寫的非常優(yōu)化,那么JDBC架構(gòu)運(yùn)行效率最高,但是實(shí)際項(xiàng)目中,這一點(diǎn)幾乎做不到,這需要程序員非常精通JDBC,運(yùn)用 Batch語句,調(diào)整PreapredStatement的Batch Size和Fetch Size等參數(shù),以及在必要的情況下采用結(jié)果集cache等等。而一般情況下程序員是做不到這一點(diǎn)的。因此Hibernate架構(gòu)表現(xiàn)出最快的運(yùn)行效率。 EB的架構(gòu)效率會(huì)差的很遠(yuǎn)。
3、開發(fā)效率:在有JBuilder的支持下以及簡單的項(xiàng)目,EB架構(gòu)開發(fā)效率最高,JDBC次之,Hibernate最差。但是在大的項(xiàng)目,特別是持久層關(guān)系映射很復(fù)雜的情況下,Hibernate效率高的驚人,JDBC次之,而EB架構(gòu)很可能會(huì)失敗。
4、分布式,安全檢查,集群,負(fù)載均衡的支持
由于有SB做為Facade,3個(gè)架構(gòu)沒有區(qū)別。
【編輯推薦】