1、hibernate真正掌握要比mybatis难,因为hibernate的功能和特性非常多,还不适合多表关联查询。
2、hibernate和mybatis都有代码生成工具,可以生成简单的dao方法。但对于高级查询mybatis需要自己写sql以及resultMap,而hibernate有良好的反射机制,提供预定义查询只需遵循一定的语法规范无需写sql语句。
3、1)hibernate调优方案:1、制定合理的缓存策略2、尽量使用延迟加载特性3、采用合理的session管理机制4、使用批量抓取设定合理的批处理参数5、进行合理的O/R映射设计
2)mybatis调优方案:mybatis和hibernate的session是一致的所以也需要合理的session管理机制,可以进行详细的sql优化
4、hibernate查询会将所有关联表的字段全部查询出来,会导致性能消耗,当然hibernate也可以自己写sql指定字段,但这就破坏了hibernate的简洁性 mybatis的sql是自己手动编写的,所以可以指定查询字段 hibernate自带日志统计,会将sql打印出来而hibernate的sql被很多人嫌弃太丑 mybatis不带日志统计需要使用log4j,而mybatis的sql是自己手动写的调整也方便
5、hibernate与数据库管联只需在xml文件中配置即可,所有的HQL语句都与具体使用的数据库无关,移植性很好 mybatis所有的sql都是依赖所用数据库的,所以不能更换数据库,移植性差
6、hibernate是在jdbc上进行一次封装,mybatis是基于原生的jdbc,运行速度较快
总结:
hibernate优势: hibernate的dao层开发比mybatis简单,mybatis需要维护sql和结果映射 hibernate对对象的维护和缓存要比 mybatis好,对增删改查的对象维护要方便 hibernate数据库移植性好,mybatis不同的数据库要写不同的sql,移植 性差
mybatis优势: mybatis门槛较低更容易掌握 mybatis可以进行sql优化,自己编写sql可以指定查询字段 如果有上千万的表或者单次 查询或提交百万数据以上不建议使用hibernate 如果统计功能,多表关联查询较多较复杂建议使用mybatis
--------------------- 本文来自 杏杏杏 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/sinat_37054984/article/details/54973379?utm_source=copy