hibernate工作使用步驟 spring事務 hibernate執(zhí)行順序
spring事務 hibernate執(zhí)行順序在Spring Servic“mybatis”和“hibernate”的區(qū)別是什么?Mybatis是一個類似hibernate的orm數據庫框架。它與hib
spring事務 hibernate執(zhí)行順序
在Spring Servic
“mybatis”和“hibernate”的區(qū)別是什么?
Mybatis是一個類似hibernate的orm數據庫框架。它與hibernate非常不同,有以下幾點:
總而言之:
Mybatis:小巧、方便、高效、簡單、直接、半自動。
Hibernate:強大、便捷、高效、復雜、曲折、全自動。
1.hibernate是全自動的,mybatis是半自動的。
Hibernate可以自動生成sql。Mybatis只有基本的字段映射,仍然需要手寫sql來實現(xiàn)和管理。
2.hibernate數據庫比mybatis可移植性強很多。
Hibernate大大降低了對象和數據庫(oracle、mysql等)之間的耦合。)通過其強大的映射結構和hql語言,而mybatis需要手工編寫sql,所以其可移植性會大大降低,成本也非常高。
3.hibernate有完整的日志系統(tǒng),mybatis缺少一些。
Hibernate日志系統(tǒng)很健全,涉及面也很廣,而mybatis除了基本的記錄功能,還有很多弱功能。
相比hibernate需要關心很多細節(jié)。
Hibernate配置比mybatis復雜很多,學習成本也比mybatis高。但正是因為mybatis使用簡單,所以它比hibernate更在意很多技術細節(jié)。因為麥巴蒂斯沒有。;t不需要考慮很多細節(jié),開發(fā)模式和傳統(tǒng)jdbc有很大不同,而hibernate正好相反。但是,如果你熟練使用hibernate,其實開發(fā)效率并不比mybatis差甚至更好。
5.在SQL的直接優(yōu)化上,mybatis比hibernate方便多了。
因為mybatis的sql是用xml寫的,所以優(yōu)化sql比hibernate方便很多。然而,許多hibernate 的sql是自動生成的,所以不可能直接維護SQL。簡而言之,hibernate寫sql不如mybatis靈活。
mybatis:
1.入口簡單,就是易學易用,提供數據庫查詢。自動對象綁定功能。
2.可以進行更細致的SQL優(yōu)化,減少查詢字段。
3.缺點是框架還是比較簡單,功能還是缺失。雖然簡化了數據綁定代碼,但是整個底層數據庫查詢實際上都是自己寫的,工作量比較大,不容易適應快速的數據庫修改。
4.二級緩存機制不好。
休眠:
1.功能強大,數據庫獨立性好,O/R映射能力強。
2.有更好的二級緩存機制,可以使用第三方緩存。
3.缺點是學習門檻不低,熟練門檻較高,如何設計O/R映射,如何在性能和對象模型之間取得平衡,如何用好Hibernate,都需要你的經驗和能力。
舉個形象的比喻:
Mybatis:機械工具很好用。你什么時候帶都可以用,但是工作還是要自己做。
Hibernate:智能機器人,但是開發(fā)它的成本(學習和熟練度)很高,工作可以擺脫它,但是受限于它能做什么。