Mybatis和 Hibernate 区别?

最近面试遇到一个问题,面试官问大家项目使用 mybatis 仍是 hibernate?我说固然使用如今主流的 mybatis 了。面试官继续问:为何不使用 hibernate?说下缘由,以及这两个框架的区别?......面试

最后我虽然是回答出来了面试官的问题,可是仍是感受到回答到的不够完善?本身想下?问什么呢?主流?难道你们都在用我也跟着你们用?缘由是什么?要一探究竟了。sql

本菜鸟简单理解以为两个框架区别以下:数据库

第一点区别:hibernate 有完整良好的映射机制不用本身手动写 sql,开发者不用担忧本身 sql 生成只须要专一本身的业务逻辑便可。mybatis在作查询时候须要本身手写 sql 和 resultMap,简单来讲 mybatis 开发量比较大一点,但 mybatis 比 hibernate 更适合复杂查询的项目。mybatis

从开发速度上来区分说,若是项目复杂查询较少,就是简单的查询这样使用 hibernate 开发速度较快,由于简单的 sql 语句已经帮你封装好了。可是若是大型项目,复杂语句较多,这样使用 mybatis 开发就会快不少,并且对 sql 语句的管理来讲也比较方便。框架

第二点区别:hibernate 进行查询时候会把全部字段都查询出来,查询性能有必定消耗。mybatis 能够指定查询的字段,在 sql 优化方面是比较灵活的。性能

第三点区别:hibernate自带日志功能,mybatis 须要 log4j 来实现。学习

第四点区别:hibernate 配置数据库链接时候自须要配置数据库驱动和数据方言,便可和数据库完成链接进行数据交互。mybatis 全部 sql 都和数据库有关系,若是完成数据库迁移就很麻烦了。优化

因此:hibernate 适合需求变化很少的中小型项目。传统项目等 oa.....spa

           mybatis 适合需求变化较多的项目。互联网项目等....hibernate

综上所述就是以上简单的几个小区别。先总结到这里之后学习中会继续补充。

 

水平有限,如有问题请留言交流!

互相学习,共同进步 :)转载请注明出处谢谢!

相关文章
相关标签/搜索