junvictor的gravatar头像
junvictor 2016-10-13 23:07:59

mybatis和hibernate各自的优缺点是什么?

RT, mybatis和hibernate各自的优缺点是什么?

所有回答列表(3)
alibao的gravatar头像
alibao  LV2 2016年10月14日

hibernate是orm框架,也就是面向对象,优点在于表与表之间关联,可以转换为对象与对象,易理解,易操作。缺点随着项目越大性能可能比mybatis稍微差一点,但是对于中小型企业,没多大差别。

mybatis是半orm框架,有点在于sql语句代码灵活,能处理复杂的sql,支持存储过程调用(这点hibernate是不支持的),缺点嘛,xml文件编写比较繁琐,如果用注解又不能充分展示mybatis的灵活性。

这是我的一些理解,更多的区别得问问谷歌度娘~

武海军的gravatar头像
武海军  LV2 2016年10月23日

hibernate全自动关系型框架 面向对象操作数据库,开发效率快 ,大量的对jdbc进行了封装,但是执行效率比较慢,在查询的时候把所有关联的数据都查询出来了;

mybatis  是半自动 框架 操作灵活  执行效率快

否极泰来的gravatar头像
否极泰来  LV6 2016年10月26日
Hibernate和Mybatis都是orm对象关系映射框架,都是用于将数据持久化的框架技术。
 Hiberante较深度的封装了jdbc,对开发者写sql的能力要求的不是那么的高,我们只要通过hql语句操作对象即可完成对数据持久化的操作了。
 另外hibernate可移植性好,如一个项目开始使用的是mysql数据库,但是随着业务的发展,现mysql数据库已经无法满足当前的绣球了,现在决定使用Oracle数据库,虽然sql标准定义的数据库间的sql语句差距不大,但是不同的数据库sql标准还是有差距的,那么我们手动修改起来会存在很大的困难,使用hibernate只需改变一下数据库方言即可搞定。用hibernate框架,数据库的移植变的非常方便。
 但是hibernate也存在着诸多的不足,比如在实际开发过程中会生成很多不必要的sql语句耗费程序资源,优化起来也不是很方便,且对存储过程支持的也不够太强大。但是针对于hibernate它也提供了一些优化策略,比如说懒加载、缓存、策略模式等都是针对于它的优化方案。
 Mybatis 也是对jdbc的封装,但是封装的没有hibernate那么深,我们可以再配置文件中写sql语句,可以根据需求定制sql语句,数据优化起来较hibernate容易很多。
 Mybatis要求程序员写sql的能力要相对使用hibernate的开发人员要高的多,且可移植性也不是很好。
 涉及到大数据的系统使用Mybatis比较好,因为优化较方便。涉及的数据量不是很大且对优化没有那么高,可以使用hibernate
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友