一、应用场合:
传统公司、部分个人开发者喜欢用jpa(Hibernate);而互联网公司更青睐于mybatis
原因:
1、mybatis更加灵活,开发迭代模式决定了他是互联网公司的首先;每一次的修改不会带来性能上的下降。
2、传统公司需求迭代速度慢、项目改动小,hibernate可以做到一劳永逸;hibernate容易因为添加关联关系或者开发者不了解优化导致项目,造成越改越糟糕。
二、各自特点:
1、mybatis官方文档就说了他是一个半自动化的持久层框架,相对于按自动的hibernate更加灵活可控;
2、mybatis的学习成本低于hibernate。
3、使用hibernate需要对他有深入的了解,尤其是缓存方面,作为一个持久层框架,性能还是第一位的。
hibernate具有三级缓存,一级缓存默认是开启的,二级缓存需要手动开始并配置优化,三级缓存可以整合业界流行的缓存技术:redis,ecache等等。
4、hibernate在关联查询中的懒加载。(在开发中,还是不建议去过多使用外键去关联操作)
5、jpa是一种规范,hibernate也是遵从这种规范;
6、springDataJpa是对repository的封装,简化了repository的操作。
- Mybatis优势
8.JPA优势
9.Mybatis劣势
需要Mybatis-Plus 登场
三丶个人感觉
总结
1、JPA、Hibernate、Mybatis简单了解
1.JPA:本身是一种ORM规范,不是ORM框架.由各大ORM框架提供实现.
2.Hibernate:目前最流行的ORM框架,设计灵巧,文档丰富(完全自动操作),只是性能不好控制(自己去控制性能,不是很好控制)。
Hibernate是一个完整的ORM框架,常规CRUD我们不需要写一句SQL;
3.MyBatis:本是apache的一个开源项目iBatis,提供的持久层框架包括SQL Maps和Dao,允许开发人员直接编写SQL(更好灵活).(Sql操作方式)
MyBatis 并不是一个完整的ORM框架,因为我们还需要自己去写全部SQL
2、JPA 和Hibernate 和 Mybatis的区别
JPA:规范,各大ORM框架实现这个规范??梢宰远ū怼?/p>
Hibernate:是完整的ORM,不需要我们写sql,框架比较重,学习成本比较高,性能不好控制,功能强大且文档丰富。
Mybatis:不是完整的ORM,程序员需要自己去写全部的SQL,轻量级框架,学习成本低,性能好控制。不能自动建表。
ORM操作数据库关系映射的方式:
1、通过配置文件,将domain和数据库中的表映射,将domain成员成员变量和表中的列映射。