请问各位大神,SpringJPA 和 Mybatis之间有什么关系或者异同?
JPA - Java Persistence API,是从JDK5开始提供的,用来描述对象 <--> 关系表映射关系,并持久化的标准。也就是说,在java中,他只是一套标准接口,没了具体实现,她什么也实现不了。常见的实现有hibernate
,spring data jpa
。
Mybatis - 另一个思路的持久化层框架,与上述的JPA思路不同,他不是依靠ORM描述映射关系来与数据库交互的。具体可以看看MyBatis vs ORM
你指的是Spring Data JPA
?个人认为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
。如有不对,请大家不吝赐教。