1 Hibernate与 MyBatis的比较:总结的比较全
http://blog.csdn.net/firejuly/article/details/8190229
2 SpringJPA 和 Mybatis之间的关系或者异同:总结的接近本质
https://segmentfault.com/q/1010000006139001?_ea=1041828
1 JPA - Java Persistence API,是从JDK5开始提供的,用来描述对象 <--> 关系表映射关系,并持久化的标准。也就是说,在java中,他只是一套标准接口,没了具体实现,她什么也实现不了。常见的实现有hibernate,spring data jpa。
Mybatis - 另一个思路的持久化层orm框架,与上述的JPA思路不同,他不是依靠ORM描述映射关系来与数据库交互的。具体可以看看MyBatis vs ORM。
2 个人认为Spring Data JPA
并不是一个标准的框架,他只是简化了对JPA
的使用,并没有实现JPA
的规范,也许他们觉得JPA
使用起来有点繁琐,而JPA
本身就是一个规范,是一个接口,要用的话还是需要结合JPA
的实现一起用,比如Hibernate
,或者其他的JPA
实现,比如Apache OpenJPA
。而Mybatis
是一个持久层的框架(并没有实现JPA
的规范,也不是一个完全意义上的ORM
框架),和Mybatis
对标的是Hibernate
(或者说是JPA
,都一个意思),Spring Data JPA
是一个更高层次的。类似的还有Spring Data MongoDB
、Spring Data Redis
。如有不对,请大家不吝赐教。
3 JPA规范与ORM框架的关系如下图:
http://blog.csdn.net/sonny543/article/details/51517413 --*答案
http://blog.csdn.net/benjaminlee1/article/details/53087351
spring data jpa是在JPA规范下提供了Repository层的实现,但是使用哪一种ORM需要你来决定。*答案。虽然ORM框架都实现了JPA规范,但是在不同的ORM框架之间切换仍然需要编写不同的代码,而通过使用Spring data jpa能够方便大家在不同的ORM框架之间进行切换而不要更改代码。并且spring data jpa 对Repository层封装的很好,也省去了不少的麻烦。