JPA的理解

JPA概念

Java persistence API的简称,中文名是Java持久层API,是JDK5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。(对象持久化:是将内存中的对象保存到可永久保存的存储设备中的一种技术)

JPA出现的原因

1.简化现有JavaEE和JavaSE应用的对象持久化的开发工作;

2.Sun希望整合ORM技术,实现在持久化领域的统一应用;

JPA提供的技术

1.ORM映射元数据

JPA支持XML和JDK5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系框架据此将实体对象持久化到数据库表中;(元数据:是指用来描述数据的数据,就是描述代码间关系的数据,如:hibernate是用hbm文件。JDK5.0出来后,java语言中就有了四种类型(TYPE),即类(class)、枚举(enum)、接口(interface)和注解(@interface),它们是处在同一级别的。java就是通过注解来表示元数据的。)

2.JPA的API

用来操作实体对象,执行crud操作,框架在底层替我们完成所有的事情,开发者从繁琐的JDBC 和 SQL代码中解脱;

3.查询语言

通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合;

Hibernate

JPA是需要Provider(供应者)来说实现其功能的,Hibernate就是JPA Provider中很强的一个。从功能上了来说,JPA现在就是Hibernate功能的一个子集,Hibernate从3.2开始,就开始兼容JPA。Hibernate3.2获得了Sun TCK的 JPA(Java  Persistence API) 兼容认证。

        JPA和Hibernate之间的关系,可以简单的理解为JPA是标准接口,Hibernate是实现。

Hibernate是如何实现与JPA 的这种关系的呢?

Hibernate主要是通过三个组件来实现的,及hibernate-annotation、hibernate-entitymanager和hibernate-core。

(1)hibernate-annotation是Hibernate支持annotation方式配置的基础,它包括了标准的JPA annotation以及  Hibernate自身特殊功能的annotation。

(2)hibernate-core是Hibernate的核心实现,提供了Hibernate所有的核心功能。

(3)hibernate-entitymanager实现了标准的JPA,可以把它看成hibernate-core和JPA之间的适配器,它并不直接提供ORM的功能,而是对hibernate-core进行封装,使得Hibernate符合JPA的规范。

  总的来说,JPA是规范,Hibernate是框架,JPA是持久化规范,而Hibernate实现了JPA。

时间: 2024-10-21 11:40:24

JPA的理解的相关文章

谈谈我对mybatis和jpa的理解

其实要承认,一个东西用久了都会有习惯心理.mybatis和jpa,两个持久层框架.从底层到用法都不同.但是实现的功能是一样的.所以说一直以来颇有争议.常年混迹于各大qq技术交流群.见过jpa的死忠粉也见过mybatis的铁杆.作为一个不到两年工作经验的小菜鸟来说,你让我分析源码,讲什么底层实现我是讲不出来的.只能作为一个使用者,来谈谈自己对这两个框架的理解. 谈谈我对mybatis和jpa的理解首先,都知道jpa的前身是著名的ssh中的h-->Hibernate.我到现在还记得学习Hiberna

关于JPA的理解

JPA全称 Java Persistence API.JPA通过JDK5.0注解或者XML描述对象和关系表的映射关系,并将运行期的实体对象持久化到数据库中.持久化:即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘).持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中.xml数据文件中等等.持久化是将程序数据在瞬时状态和持久状态间转换的机制.JDBC就是一种持久化机制,文件IO也是一种持久化机制. 规范:所谓的规范意指明文规定或者约定俗称的标准.如:道德规范.技术规

JPA个人理解

JPA是什么? JPA全称JavaPersistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中.JPA是JSR-220(EJB3.0)规范的一部分,在JSR-220中规定实体对象(EntityBean)由JPA进行支持. 所以JPA不局限于EJB3.0,而是作为POJO持久化的标准规范,可以脱离容器独立运行,开发和测试更加方便. JPA在应用中的位置如下图所示: 为什么要使用JPA? 在说为什么要使用JPA之前,我们有必要了

spring jpa ManyToMany 理解和使用

1.java和jpa 中所有的关系都是单向的.这个关系数据库不同,关系数据库,通过外键定义并查询,使得反向查询总是存在的. 2.JPA还定义了一个OneToMany关系,它与ManyToMany关系类似,但反向关系(如果已定义)是ManyToOne关系. OneToMany与JPA中ManyToMany关系的主要区别在于,ManyToMany总是使用中间关系连接表来存储关系, OneToMany可以使用连接表或者目标对象的表引用中的外键源对象表的主键. @OneToMany(cascade =

JPA Hibernate jpa spring data jpa

什么么是JPA? 全称Java Persistence API,可以通过注解或者XML描述[对象-关系表]之间的映射关系,并将实体对象持久化到数据库中. 为我们提供了: 1)ORM映射元数据:JPA支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中: 如:@Entity.@Table.@Column.@Transient等注解. 2)JPA 的API:用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和

JPA、Hibernate、Spring data jpa之间的关系,终于明白了

什么是jpa? 全称Java Persistence API,可以通过注解或者XML描述[对象-关系表]之间的映射关系,并将实体对象持久化到数据库中. 为我们提供了: 1)ORM映射元数据:JPA支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中: 如:@Entity.@Table.@Column.@Transient等注解. 2)JPA 的API:用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和S

JPA、Hibernate、Spring data jpa之间的关系,以及和springboot的整合

什么么是JPA? 全称Java Persistence API,可以通过注解或者XML描述[对象-关系表]之间的映射关系,并将实体对象持久化到数据库中. 为我们提供了: 1)ORM映射元数据:JPA支持XML和注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中: 如:@Entity.@Table.@Column.@Transient等注解. 2)JPA 的API:用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和

Spring Boot2 系列教程(二十三)理解 Spring Data Jpa

有很多读者留言希望松哥能好好聊聊 Spring Data Jpa! 其实这个话题松哥以前零零散散的介绍过,在我的书里也有介绍过,但是在公众号中还没和大伙聊过,因此本文就和大家来仔细聊聊 Spring Data 和 Jpa! 本文大纲: 1. 故事的主角 1.1 Jpa 1.1.1 JPA 是什么 Java Persistence API:用于对象持久化的 API Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层 1.1.2 JPA 和 Hibernate 的关

十八、sun JPA理解及使用

1.JPA理解及实现:    JPA(Java Persistence API)作为Java EE 5.0平台标准的ORM规范,将得到所有Java EE服务器的支持,是SUN在充分吸收现有ORM框架的基础上,得到了一个易于使用.伸缩性强的ORM规范.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中.    JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分.可以在Web应用.甚至桌面应用中使用.JPA的宗旨是为POJO提供持久