Hibernate和MyBatis哪个好?


是不是国外使用最多的是hibernate,国内使用的最多的是mybatis,看了github上mybatis的关注度才1000多!要知道BootStrap关注度是2万多啊!

hibernate mybatis

星星砸到头 9 years, 5 months ago

你要知道用html的有多少,用Java的有多少,不是每一个写网站的都用Java,但是每一个用Java写网站的都要用html。
简单两句话:
hibernate 用好了,非常厉害,性能什么的不是个事,而且开发速度快得多,可是一般人碰到复杂的sql就懵了
mybatis 入门容易,直接写sql语句,但是写了大量的sqlMap,开发速度肯定要慢些
感觉这个就跟mysql和Oracle一样,你觉得哪个好

霧雨魔里莎 answered 9 years, 5 months ago

转:
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片段即可。

moren66 answered 9 years, 5 months ago

Your Answer