標籤:font 來源 span 頻繁 str sql最佳化 hibernate 移植 www
轉自:http://t.51jdy.cn/thread-259-1-1.html
傳統的 業務系統,通常業務都比較複雜,懂業務的營運人員 對sql查詢工具都比較熟悉。
這種以 資料庫 為主的 業務情境 使用 以sql為主的持久層架構 例如:ibatis,mybatis
這種 效能最佳化的時候 sql 語句調整較為方便,甚至 業務人員 會直接提供 業務對於的 sql給開發人員。
對於快速迭代的中小型 新項目,適合使用hibernate(JPA + hibernate驅動)。
快速迭代 適合 使用物件導向的 持久層架構。在開發過程中 對象的變更非常頻繁。
這種 持久層架構 適合 快速 重構 ,提高開發效率。
但是 這種架構 易學難精,用的不好就容易造成效能問題,用的好效能並不輸於ibatis架構。
在做效能最佳化方面 可藉助 緩衝實現。
Hibernate的真正掌握要比Mybatis來得難些。Mybatis架構相對簡單很容易上手,但也相對簡陋些。個人覺得要用好Mybatis還是首先要先理解好Hibernate。
Mybatis優勢
- MyBatis可以進行更為細緻的SQL最佳化,可以減少查詢欄位。
- MyBatis容易掌握,而Hibernate門檻較高。
Hibernate優勢
- Hibernate的DAO層開發比MyBatis簡單,Mybatis需要維護SQL和結果映射。
- Hibernate對對象的維護和緩衝要比MyBatis好,對增刪改查的對象的維護要方便。
- Hibernate資料庫移植性很好,MyBatis的資料庫移植性不好,不同的資料庫需要寫不同SQL。
- Hibernate有更好的二級緩衝機制,可以使用第三方緩衝。MyBatis本身提供的緩衝機制不佳。
烏拉拉
連結:https://www.zhihu.com/question/21104468/answer/58579295
來源:知乎
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。 Hibernate全自動機槍,MyBatis半自動機槍,然後在高速射擊資料庫子彈的情況下,Hibernate容易卡殼,那時你就會說原來還是myBatis靠譜。。。
JPA,Hibernate,ibatis(mybatis)如何選用?