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