Hibernate和MyBatis哪个好?
是不是国外使用最多的是hibernate,国内使用的最多的是mybatis,看了github上mybatis的关注度才1000多!要知道BootStrap关注度是2万多啊!
Answers
转:
Hibernate vs MyBatis
Hibernate更加自动化,我们只需要使用面向对象的API就行,它能帮我们生成最终执行的SQL语句.
而MyBatis相对来说比较半自动化了,需要我们手工编写SQL语句,还需要我们建立一个Java对象映射.
不过我(阿里巴巴公司系统架构师-黄勇)个人更加倾向于MyBatis,
因为我们能控制的地方会更多,其实太自动化了有时不太好.
JeeSite为何使用MyBatis?
http://jeesite.com/
1.学习成本:
Hibernate的真正掌握要比Mybatis来得难不少。
Mybatis框架相对简单很容易上手,也更加灵活。
对于学习过Hibernate的用户,学习起MyBatis也更容易上手。
2.开发成本:
大家都说Hibernate开发效率高,个人认为MyBatis的开发效率并不比Hibernate低,
通过代码生成器和封装开发效率不是问题,并且MyBatis可控性比较高,并更易于维护。
3.性能方面:
由于Hibernate比较难以掌握,性能方面也成为了Hibernate的问题瓶颈,
当然如果你对Hibernate非常熟,Hibernate性能上定不是问题。
但对于大多数情况下,真正掌握Hibernate的人少之又少,然而的也就造就了项目风险加大。
4.多数据库支持:
有些人说MyBatis对多数据库支持困难,我认为这个不是问题,
虽说目前JeeSite仅提供对MySQL和Oracle数据库的支持,
但对于支持其它数据库的改动也不是很麻烦,
SQL是被专门写在XML中,对于大多数SQL来说都是通用的,
对于不同的数据库可通过dbName区分和修改各别的SQL片段即可。