hibernate的優缺點和適用場合

2022-04-12 04:47:01 字數 920 閱讀 9419

hibernate優點:

1、物件化。人員以面相物件的思想來運算元據庫。hibernate支援許多物件導向的特性,如組合,繼承,多型等。

2、更好的移植性.對於不同的資料庫,開發者只需要使用相同的資料操作即可.

3、開發效率高。hibernate提供了大量的封裝(這也是它最大的缺點),很多資料操作以及關聯關係等都被封裝的很好,開發者不需寫大量的sql語句,這就極大的提高了開發者的開發效率。

4、快取機制的使用。hibernate提供了快取機制(session快取,二級快取,查詢快取),對於那些改動不大且經常使用的資料,可以將它們放到快取中,不必在每次使用時都去查詢資料庫,快取機制對提公升效能大有裨益。

session快取:

二級快取:

查詢快取;

hibernate缺點:

一、由於對持久層封裝過於完整,導致開發人員無法對sql進行優化,無法靈活使用jdbc的原生sql,hibernate封裝了jdbc,所以沒有jdbc直接訪問資料庫效率高。要使用資料庫的特定優化機制的時候,不適合用hibernate。

二、框架中使用orm原則,導致配置過於複雜,一旦遇到大型專案,比如300張表以上,配置檔案和內容是非常龐大的,另外,dto滿天飛,效能和維護問題隨之而來

三、如果專案中各個表中關係複雜,表之間的關係很多,在很多地方把lazy都設定false,會導致資料查詢和載入很慢,尤其是級聯查詢的時候。

四、hibernate在批量資料處理時有弱勢,對於批量的修改,刪除,不適合用hibernate,這也是orm框架的弱點。hibernate不適用於小型專案。

五、針對單一物件簡單的增刪查改,適合於hibernate,而對於批量的修改,刪除,不適合用hibernate,這也是or框架的弱點;要使用資料庫的特定優化機制的時候,不

適合用hibernate 

vector list 和deque的優缺點

vector表示一段連續的記憶體區域,隨機訪問效率很高,因為每次訪問離起始處的位移都是固定的,但是在隨意位置插入刪除元素效率很低,因為它需要將後面的元素複製一遍。list表示非連續的記憶體區域,並通過一對指向首尾元素的指標雙向鏈結起來,從而允許向前和向後兩個方向進行遍歷。在list的任意位置插入和刪...

Apache和Nginx的優缺點

nginx相對於apache的優點 1 輕量級,同樣起web 服務,比apache占用更少的記憶體及資源 2 抗併發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高併發下nginx 3 能保持低資源低消耗高效能 4 高度模組化的設計,編寫模組相對簡單 5 社群活躍,各種高效...

SVN和Git的優缺點

svn的優點 1 採用集中式,易於管理,保證安全性 2 管理方便,邏輯明確,理念符合常規思維 3 的一致性高 4 適合人數不多的專案開發 5 允許乙個檔案有任意多的可命名屬性,會關注所有的檔案型別 6 支援二進位制檔案,更容易處理大檔案 7 支援空目錄。svn的缺點 1 伺服器壓力太大,資料庫容量暴...