hiberante和jdbc的比較

原文:http://bxl766.blog.163.com/blog/static/61099505201281411043395/

傳統的架構:  1) Session Bean <-> Entity Bean <-> DB
爲了解決性能障礙的替代架構:2) Session Bean <-> DAO <-> JDBC <-> DB
使用Hibernate來提高上面架構的開發效率的架構: 3) Session Bean <-> DAO <-> Hibernate <-> DB


就上面3個架構來分析:

相同點:

◆兩者都是JAVA的數據庫操作中間件。
◆兩者對於數據庫進行直接操作的對象都不是線程安全的,都需要及時關閉。
◆兩者都可以對數據庫的更新操作進行顯式的事務處理。

不同點:
◆使用的SQL語言不同:JDBC使用的是基於關係型數據庫的標準SQL語言,Hibernate使用的是HQL(Hibernate query language)語言
◆操作的對象不同:JDBC操作的是數據,將數據通過SQL語句直接傳送到數據庫中執行,Hibernate操作的是持久化對象,由底層持久化對象的數據更新到數據庫中。
◆數據狀態不同:JDBC操作的數據是“瞬時”的,變量的值無法與數據庫中的值保持一致,而Hibernate操作的數據是可持久的,即持久化對象的數據屬性的值是可以跟數據庫中的值保持一致的。


1、內存消耗:採用JDBC的架構2無疑是最省內存的,Hibernate的架構3次之,EB的架構1最差。
2、運行效率:如果JDBC的代碼寫的非常優化,那麼JDBC架構運行效率最高,但是實際項目中,這一點幾乎做不到,這需要程序員非常精通JDBC,運用Batch語句,調整PreapredStatement的Batch Size和Fetch Size等參數,以及在必要的情況下采用結果集cache等等。而一般情況下程序員是做不到這一點的。因此Hibernate架構表現出最快的運行效率。EB的架構效率會差的很遠。
3、開發效率:在有JBuilder的支持下以及簡單的項目,EB架構開發效率最高,JDBC次之,Hibernate最差。但是在大的項目,特別是持久層關係映射很複雜的情況下,Hibernate效率高的驚人,JDBC次之,而EB架構很可能會失敗。
4、分佈式,安全檢查,集羣,負載均衡的支持 由於有SB做爲Facade,3個架構沒有區別。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章