JPA是什么?为什么使用JPA? JPA和Hibernate关系

JPA是什么?

JPA全称为Java Persistence API ,Java持久化API是Sun公司在java EE 5规范中提出的Java持久化接口。JPA吸取了目前Java持久化技术的优点,旨在规范、简化Java对象的持久化工作。使用JPA持久化对象,并不是依赖于某一个ORM框架。

为什么使用JPA?

JPA是目前比较流行的一种ORM技术之一,所以他拥有ORM技术的各种特点,当然他还有自己的一些优势:

1 标准化

JPA 是 JCP 组织发布的Java EE标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问 API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。

2 对容器级特性的支持

JPA 框架中支持大数据集、事务、并发等容器级事务,这使得 JPA 超越了简单持久化框架的局限,在企业应用发挥更大的作用。

3 简单易用,集成方便

JPA的主要目标之一就是提供更加简单的编程模型:在JPA框架下创建实体和创建Java类一样简单,没有任何的约束和限制,只需要使用 javax.persistence.Entity进行注释;JPA的框架和接口也都非常简单,没有太多特别的规则和设计模式的要求,开发者可以很容易的掌握。JPA基于非侵入式原则设计,因此可以很容易的和其它框架或者容器集成。

4 可媲美JDBC的查询能力

JPA的查询语言是面向对象而非面向数据库的,它以面向对象的自然语法构造查询语句,可以看成是hibernateHQL的等价物。JPA定义了独特的JPQL(Java Persistence Query Language),JPQL是EJB QL的一种扩展,它是针对实体的一种查询语言,操作对象是实体,而不是关系数据库的表,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询。

5 支持面向对象的高级特性

JPA 中能够支持面向对象的高级特性,如类之间的继承、多态和类之间的复杂关系,这样的支持能够让开发者最大限度的使用面向对象的模型设计企业应用,而不需要自行处理这些特性在关系数据库的持久化。http://791202.com/

JPA和Hibernate关系

Jpa是一种规范,而Hibernate是它的一种实现;

如果hibernate认为JPA的注解够用,就直接用。否则会弄一个自己的出来作为补充;

JPA的注解已经是hibernate的核心,hibernate只提供了一些补充。

0

如何在Eclipse中导入hibernate.cfg.xml自动提示功能需要的DTD文件?

今天在写Hibernate的时候,添加了配置文件后,发现hibernate.cfg.xml没有提示功能。这是因为没有设置DTD文件的问题,不是同一个版本的。重新导入了DTD文件就好了。同样的情况下,可以通过导入DTD的文件实现自动提示功能。

如下图

具体给 hibernate.cfg.xml 配置文件增加自动提示操作步骤

1、打开Eclipse,依次选择【window】->【preference】->【xml】->【xml catalog】

2、选中 user specified entried,选择左边【Add..】按钮,依次填写三项操作

  1. location:选本地hibernate-mapping-3.0.dtd所在路径。这个文件在hibernate文件中,需要我们下载加压好的。(例如,我使用的是hibernate-release-4.1.1.Final版本,路径是:D:\Hibernate\hibernate-release-4.1.1.Final\project\hibernate-core\src\main\resources\org\hibernate。 )
  2. Key type:URI。在type一定要选URI。
  3. Key:http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd。可以在dtd文件里找到,key就将hibernate配置文件中的dtd文件粘上去就可以了。或者直接贴这个也行。

3、关闭配置文件,重新打开即可。如果不行检查一下XML文件的打开方式。选择【XML Editor】

自动提示效果

0