Spring Data JPA(SDJ)在我看来,相比于 MyBatis 和 Hibernate 最大的好处就在于,它太方便了!若是你的业务逻辑并不须要控制细腻度很高的状况下(SDJ 在我看来其实控制粒度也不低!),我强烈建议从 Hibernate 或 Mybatis 迁移至 SDJ!我只能说 Spring 出的东西个个都是极品,另外安利一个给我同样感受的公司(Spring 是 Pivotal 公司的项目)——大名鼎鼎的 JetBrains ,其表明做 IntelliJ IDEA 被公认为是最好的 Java IDE!html
严格意义上来讲,SDJ 是“站在巨人的肩膀上”—— Hibernate 和 JPA。Hibernate 是一种 ORM (Object Relational Mapping ——对象关系映射)框架,通俗点来讲就是将数据库和 Java 对象进行相互映射,这样一来就能够经过操做 Java 对象来操做数据库;JPA 是一种协议,它提供了一种用于对象关系映射的 POJO(Plain Old Java Object ——普通 Java 对象)持久性模型。而 Hibernate 自己也是基于 JPA 的实现。有点相似于实现类(Hibernate)和接口(JPA)的关系。而 SDJ 是在二者的肩膀上更近一步,提供了更加方便的操做。java
顺带一说,MyBatis 与二者不一样,它不基于 JPA 协议,而是直接经过操做 SQL 语句来操做数据库。控制细腻度在我看来是最高的!所以,若是您须要更增强大的控制,建议您使用 MyBatis。git
全文的知识来源都是项目的 GA RELEASE
官方文档,文末我会提供对应的参考连接,并尽量地根据 GA RELEASE
版本进行更新。开发环境是 IntelliJ IDEA & Gradle & Spring Boot,若是您对其中任何一项不熟悉,别慌,我只会以平台无关的代码进行说明,固然我强烈建议您去了解一下这些对编程人员友好开发的工具,从此我也会写相关的文章来记录我对其学习的总结。github
Ch1.默认方法使用spring
源码仓库数据库
个人咖啡馆segmentfault
欢迎您来个人咖啡馆坐坐338147322。mybatis