JPA Spring-Data-JPA hibernate mybatis

时间:2022-04-27 20:31:53

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 MongoDBSpring 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层封装的很好,也省去了不少的麻烦。 

JPA Spring-Data-JPA hibernate mybatis