本人是个菜鸟程序员,现在大学还没毕业。
最近一直在想一个问题,到底是hibernate好还是mybatis好。我总觉得hibernate好用之极,在大学里做过的小项目都是用的hibernate,只要表与表联系设置好了,代码非常简单啊,轻轻松松取数据存数据。最近在碰mybatis,感觉mybatis并没有hibernate那么方便,每一句sql语句要自己写,但可以自定义复杂的sql语句,每写一个功能可能比使用hibernate写花的时间多好多。
我唯一能想到的mybatis的好处是查询效率可能比较高,但确实不方便啊,关联对象全部需要手动拿到。
这只是我很菜的理解,现在很多公司都放弃使用hibernate,大多数我去面试实习的公司企业都说是用mybatis。我想知道。mybatis除了性能比hibernate好,其他有什么好处呢?为什么现在都喜欢用mybatis?hibernate这么好用为什么不用,仅仅是因为查询效率低吗?
hibernate在大数据量复杂查询中的数据查询优化非常难做,因为一般使用hibernate的都不是用原生sql
hibernate在快速建模以及中小型快速响应的应用中比较好用
mybatis配置开发相对复杂,但是带来的好处是更加灵活,sql优化方便。如果公司有专门的dba,还可以将sql拿给dba去优化。
楼上说是因为懒,可以让dba写sql,是扯淡,dba只会帮你优化慢查询sql,所有的业务sql原型还是要自己写。
受教
随便,看你心情,想用哪个用哪个,我所知道的,喜欢用mybatis的原因是程序员不愿意管数据库优化.
mybatis可以让dba帮你写sql,其实就是懒,
hibernate是会自动生成SQL,但是那个SQL不是最优的。mybitis可以使用自定义SQL。让DBA写这个并不是说懒,这样可以让SQL是最优的。另外,也不是所有程序员都等着DBA的SQL。
mybatis 和hibernate可以结合使用,对于基本操作可以使用hibernate,但是涉及到复杂的数据库应用mybatis还是不错的。
结合使用是什么意思?搭框架的时候可以既使用hibernate和mybatis?还是说是在两个项目里,简单数据使用hibernate,复杂数据放另外一个项目?
有道理,hibernate和mybatis可以结合使用
@上街、找金莎: 呵呵,在实际项目里面,我们要么用mybatis(小型项目)、要不用hibernate+纯SQL,很少见项目混合用的,不统一起来 会整个都乱了的
@Nadim: 在开发的时候指定规范
假如一张表几百个字段,做更新或者新增,你会用mybatis还是hibernate????当然hibernate,mybatis虽然速度快,但是并不是真正意义上的orm框架