JPA和SpringDataJPA

什么是jpa
JPA java persistence api ,为POJO(就是我们的JavaBean)提供持久化标准规范,JavaEE规范之一
主要思想,3个:
1 ORM(Object Relational Mapping)映射元数据,通过 XML或注解,描述对象和表之间的关系,框架据此将实体对象持久化到数据库
        关键字:ORM映射、实体持久化
2 规范的API,通过操作实体对象,就能执行对应数据库的CRUD操作,ORM框架让开发 从繁琐的JDBC和SQL代码中解脱出来
       关键字: 实体对象、JDBC和SQL、解脱
3 查询语言,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合
       关键字: 面向对象查询、SQL解耦

JPA与ORM什么关系
l  ORM是JPA规范中的一个体现思想, JPA规范包含了ORM
l  Sun公司为了简化现有Java EE和Java SE应用的对象持久化的开发工作,整合ORM技术,结束现在Hibernate、iBATIS、TopLink等ORM框架各自为营的局面,提出了新的JPA ORM规范。
JPA的实现者(供应商):
Hibernate、OpenJPA、TopLink等

什么是Spring Data
Spring Data 是Spring 的一个子项目(不是很成熟), 旨在 统一和简化对各类型持久化存储, 而不拘泥于是关系型数据库还是NoSQL 数据存储。(野心很大)
 
无论是哪种持久化存储, 数据访问对象(或称作为DAO,即Data Access Objects)通常都会提供对单一域对象的CRUD (创建、读取、更新、删除)操作、查询方法、排序和分页方法等。
 
Spring Data则提供了基于这些层面的统一接口(CrudRepository,PagingAndSortingRepository)以及对持久化存储的实现。
 
Spring Data 包含多个子项目:
l  Commons - 提供共享的基础框架,适合各个子项目使用,支持跨数据库持久化
l   Hadoop - 基于 Spring 的 Hadoop 作业配置和一个 POJO 编程模型的 MapReduce 作业
l  Key-Value  - 集成了  Redis 和  Riak ,提供多个常用场景下的简单封装
l  Document - 集成文档数据库: CouchDB 和  MongoDB 并提供基本的配置映射和资料库支持
l  Graph - 集成  Neo4j 提供强大的基于 POJO 的编程模型
l  Graph Roo AddOn - Roo support for Neo4j
l   JDBC Extensions - 支持 Oracle RAD、高级队列和高级数据类型
l   JPA - 简化创建 JPA 数据访问层和跨存储的持久层功能
l  Mapping - 基于 Grails 的提供对象映射框架,支持不同的数据库
l  Examples - 示例程序、文档和图数据库
l  Guidance - 高级文档
 
(Spring Data就像一口缸,什么都想往里装,想实现完全统一的数据访问层的API)
什么是Spring Data JPA
Spring Data JPA 框架,主要针对的就是 Spring 唯一没有简化到的业务逻辑代码,至此,开发者连仅剩的实现 持久层业务逻辑的工作都省了,唯一要做的,就只是声明持久层的接口,其他都交给 Spring Data JPA 来帮你完成!
 
spring data jpa、jpa以及ORM框架之间的关系
 
Spring data jpa是在JPA规范下提供了Repository层的实现,但是 使用哪一种ORM需要你来决定(默认使用Hibernate JPA的实现)。虽然ORM框架都实现了JPA规范,但是在不同的ORM框架之间切换仍然需要编写不同的代码,而通过使用Spring data jpa能够方便大家在不同的ORM框架之间进行切换而不要更改代码。并且spring data jpa 对Repository层封装的很好,也省去了不少的麻烦。
 
 
顶
 
 
 
发布了946 篇原创文章 · 获赞 9 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/heima201907/article/details/105286406