返回信息流最近在学习Hibernate。Hibernate的初衷是将开发者从JDBC中解脱出来。而知乎上对其与MyBatis的比较,更多的是吐槽Hibernate生成的SQL语句不够人性化,不如自己在MyBatis下手写。那么从这一点上说,这岂不是有悖Hibernate的初衷?它最大的优势已被吐槽完了,那么Hibernate的存在优势显现在哪了?
这是一条镜像帖。来源:北邮人论坛 / java / #51238同步于 2016/6/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
Hibernate与MyBatis
yohu
2016/6/26镜像同步14 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
hibernate用起来舒服,特别是懒加载拉数据的时候,你会发现很方便。但是当工程大了之后,你就会觉得Hibernate 没有mybatis自由,在自定义定制化方面确实差了很多。所以在两者选择的时候,都会倾向于mybatis,更何况现在mybatis的配置方面也比以前简单了不止一点
先说一下hibernate
缺点:1.不能对SQL语句进行优化,虽然也可以使用原生的SQL,可是正如你所说,与hibernate的初衷不同。这也就是它最大的弊病,SQL优化的操作没有了。
2.万恶的懒加载(以下是我个人的见解)。所谓懒加载,其实就是把请求拉长了,这也就将数据库连接拉长了,比较拖累性能。我感觉将请求拆分,用ajax分解比较好。
优点:1.强大的映射系统。对象的映射关系做得简直完美。
2.缓存机制,事务机制。(这个一般的CRM都有的,但还是要Spring包装一下~)
Mybtis:
缺点:1.映射关系比较弱,需要写大量的结果映射集。
优点:1.注重SQL的优化加速。
个人见解:
我个人喜欢spring的JDBC,怎么说也是原生的最好。而且和spring无缝隙组合。如果这两种要是选一个的话,个人比较喜欢mybatis。而且现在企业中大部分使用的是SpringMVC+Mybatis+Spring。所以个人推崇mybatis,而且他的学习成本低,3天左右就能学会。