JPA、Hibernate以及Mybatis之间的差异和总结

一、JPA、Hibernate、Mybatis简单了解

  1.  JPA本身是一种ORM规范,不是ORM框架,由各大ORM框架提供实现。

  1.  Hibernate是目前最流行的ORM框架,设计灵巧,文档丰富(完全自动操作),只是性能不好控制(自己去控制性能,不是很好控制),Hibernate是一个完整的ORM框架,常规CRUD我们不需要写一句SQL

  1.  MyBatis本是apache的一个开源项目iBatis,提供的持久层框架包括SQL Maps和Dao,允许开发人员直接编写SQL(更灵活),MyBatis 并不是一个完整的ORM框架,因为我们还需要自己去写全部SQL。

二、JPA 和Hibernate 和 Mybatis的区别

  1.  JPA规范,各大ORM框架实现这个规范,可以自动建表。

  2.  Hibernate是完整的ORM,不需要我们写sql,框架比较重,学习成本比较高,性能不好控制,功能强大且文档丰富。

  3.  Mybatis不是完整的ORM,程序员需要自己去写全部的SQL,轻量级框架,学习成本低,性能好控制,不能自动建表。

三、各自特点

       1.  MyBatis官方文档就说了他是一个半自动化的持久层框架,相对于按自动的Hibernate 更加灵活可控。

       2.  MyBatis的学习成本低于Hibernate

       3.  使用Hibernate 需要对他有深入的了解,尤其是缓存方面,作为一个持久层框架,性能还是第一位的。

       Hibernate 具有三级缓存,一级缓存默认是开启的,二级缓存需要手动开始并配置优化,三级缓存可以整合业界流行的缓存         技 术:redis,ecache等等。

       4.  Hibernate 在关联查询中的懒加载(在开发中,还是不建议去过多使用外键去关联操作)。

       5.  JPA是一种规范,Hibernate 也是遵从这种规范。

       6.  SpringDataJpa是对repository(仓储)的封装,简化了repository(仓储)的操作。

四、应用场合:

        传统公司、部分个人开发者喜欢用jpa,而互联网公司更青睐于MyBatis

     原因:

       1.  MyBatis更加灵活,开发迭代模式决定了他是互联网公司的首先;每一次的修改不会带来性能上的下降。

       2.  传统公司需求迭代速度慢、项目改动小,hibernate可以做到一劳永逸。但Hibernate 容易因为添加关联关系或者开发者不了解优化导致项目,造成越改越糟糕。

五、加油站

     1.  JPAMyBatis相比,JPA对于数据的查询速度要略胜于MyBatis,但从对数据的操控(CRUD)来说MyBatis又略胜于JPA。

     2.  由于MyBatis是半自动化的持久层框架,对于数据的查询可根据实际业务需求进行定制化开发,譬如我只需要某张表的部分字段信息,MyBatis便可通过手动配置避免将整条记录都查出来。但对于Hibernate 来说,由于是一个完整的ORM框架,往往会带出多余的数据,虽说也可单独通过hql做控制,但毕竟这是MyBatis的强项。

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值