A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

什么是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 - 集成文档数据库:CouchDBMongoDB 并提供基本的配置映射和资料库支持
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层封装的很好,也省去了不少的麻烦。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马