mybatis和hibernate的区别---Mybatis的学习笔记(四)
具體說明:
Mybatis和hibernate不同,它不完全是一個ORM框架,因為MyBatis需要程序員自己編寫Sql語句,不過mybatis可以通過XML或注解方式靈活配置要運行的sql語句,并將java對象和sql語句映射生成最終執行的sql,最后將sql執行的結果再映射生成java對象。
Mybatis學習門檻低,簡單易學,程序員直接編寫原生態sql,可嚴格控制sql執行性能,靈活度高,非常適合對關系數據模型要求不高的軟件開發,例如互聯網軟件、企業運營類軟件等,因為這類軟件需求變化頻繁,一但需求變化要求成果輸出迅速。但是靈活的前提是mybatis無法做到數據庫無關性,如果需要實現支持多種數據庫的軟件則需要自定義多套sql映射文件,工作量大。
Hibernate對象/關系映射能力強,數據庫無關性好,對于關系模型要求高的軟件(例如需求固定的定制化軟件)如果用hibernate開發可以節省很多代碼,提高效率。但是Hibernate的學習門檻高,要精通門檻更高,而且怎么設計O/R映射,在性能和對象模型之間如何權衡,以及怎樣用好Hibernate需要具有很強的經驗和能力才行。
總之,按照用戶的需求在有限的資源環境下只要能做出維護性、擴展性良好的軟件架構都是好架構,所以框架只有適合才是最好。
總而言之:
hibernate:是一個標準ORM框架(對象關系映射)。入門門檻較高的,不需要程序寫sql,sql語句自動生成了。對sql語句進行優化、修改比較困難的。
應用場景:適用與需求變化不多的中小型項目,比如:后臺管理系統,erp、orm、oa。。
mybatis:專注是sql本身,需要程序員自己編寫sql語句,sql修改、優化比較方便。mybatis是一個不完全 的ORM框架,雖然程序員自己寫sql,mybatis 也可以實現映射(輸入映射、輸出映射)。
應用場景:適用與需求變化較多的項目,比如:互聯網項目。
總結
以上是生活随笔為你收集整理的mybatis和hibernate的区别---Mybatis的学习笔记(四)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 入门demo---Mybatis学习笔记
- 下一篇: SqlSession的使用范围---My