JPA初体验(一)简介

JAVA领域中,持久化是企业开发中必不可少的技术。Java领域中曾涌现出几种试图解决数据持久化问题的几种方案。例如:序列化(Serialization)、JDBC、对象关系映射(ORM)、EJB2.X和最新的JPA等。


1.序列化

java内置的持久化Java对象的机制。只要某个类实现了java.io.Serializable接口,就能使用java.io.objectOutputStream将该类对象以二进制字节码的形式写到硬盘上。 简单的应用可以使用序列化对java对象的持久化,一般序列化的对象一般为普通的java Bean。 虽然序列化用起来快速、高速、能够直接持久化Java对象,但是不能进行复杂查询。


2.JDBC

最常用的持久化方法,能快速读写大量的数据、支持事务性、保证数据的完整性、支持数据的并发读取,但是使用JDBC持久化对象需要使用大量的SQL代码。 不能应对数据表结构和对象属性发生变化。


3.ORM映射

百度百科是这么定义的:ORM映射是一种程序设计,用于实现面向对象编程语言里不同类型系统的数据之间的转换。符合面向对象的思想,ORM框架能够将Java对象映射到关系数据库,能够直接持久化复杂的Java对象。ORM技术运用的已经很成熟了,目前也比较流行,但是ORM之间的API差别很大。 所以为了解决ORM这种差异,出现了JPA。


那么什么是JPA呢?

JPA 是持久化的一个API,是Sun公司在Java EE5规范中提出的Java持久化接口。提供了以POJO编程模型为持久化对象的机制:通过JDK5.0 注解 或 XML描述对象—关系表的映射关系,并将运行期的实体对象持久化到数据库中。


JPA的目标之一是制定一个可以由多个供应商实现的API,目前实现了JPA的框架有: Hibernate、OpenJPA、TopLink。其中Hibernate实现是由JBoss提供的。 其实可以这么理解JPA是一些接口的集合,各个框架实现了这些接口。


EJB和JPA的关系

在EJB2.x中,EJB有三种类型的Bean分别是会话Bean、实体Bean、和消息驱动Bean。到了EJB 3EJB中的实体Bean逐渐被JPA规范代替。这也就是为什么JPA规范包含在EJB3的规范中的原因,但JPA的使用范围大于EJB3,既可以在java EE中,也可以在JavaSE中使用,同时和实体Bean相比,JPA不需要配置文件,简化了开发环境。


JPA与Hibernate 关系

在做项目之前,一直都不能理解JPA和Hibernate是什么?还以为他们指的同一东西,其实JPA是Hibernate的一个抽象或者是接口。Hibernate是JPA的一种实现,同时Hibernate也是ORM框架。JPA本质上就是一种ORM规范,不是ORM框架,因为JPA并未提供ORM实现。


总结:JPA只是一种规范,是SUN公司制定出来的一套标准,各厂商只需要根据这个标准提供实现就可以。总的来说,还是基于ORM差异的存在,SUN希望整合ORM技术,统一各种ORM框架规范,最终实现天下归一的目标。



评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值