转载自http://www.cnblogs.com/o-andy-o/archive/2012/04/17/2453537.html

JPA是基于Java持久化的解决方案,主要是为了解决ORM框架的差异,它的出现在某种程度上能够解决目前ORM框架之间不能够兼容的问题,对开发人员来说,能够更好的在JPA规范下进行系统开发。

JPA全称为Java Persistence API ,Java持久化API是Sun公司在Java EE 5规范中提出的Java持久化接口。JPA吸取了目前Java持久化技术的优点,旨在规范、简化Java对象的持久化工作。

如图1.3说明了JPA在系统架构中的作用,使用JPA持久化对象,而不是依赖于某一个ORM框架。

JPA的优势

事实上,JPA并不是一项技术,而是一种标准,因为JPA只是一套接口,本身不能完成任何事情。JPA只是规范了Java持久化的官方标准。JPA有以下几个优点。

可持久化Java对象。JPA能够直接持久化复杂的Java对象,并能够使用JPQL语言进行复杂的查询。JPQL是JPA专用的查询语言,是类似于SQL的面向对象的查询语言。

使用简单。JPA使用注释(Annotation)定义Java对象与关系数据库之间的映射,而传统的ORM多使用xml配置文件。JPA使用起来比ORM要方便。使用JPA不用关注底层使用什么数据库。

规范标准化。JPA是JCP组织发布的,是Java官方规定的统一的API。目前已经有多种框架实现JPA标准。使用了JPA的系统可以自由选择遵循JPA标准的框架,并能够自由更换。

事务性、大数据量。JPA底层使用关系数据库进行存储,因此具备关系数据库的特点,例如事务性、数据完整性、并发访问、大数据量等。

与其他持久化技术相比,JPA有很大的技术优势。表列出了JPA与其他持久化技术的比较。

EJB3与JPA的关系

由于历史的原因,EJB 3与JPA有着藕断丝连的关系。EJB 2.X中,EJB有三种类型的Bean,分别是会话Bean(Session Bean)、实体Bean(Entity Bean)和消息驱动Bean(Message Driven Bean)。

随着EJB3规范的推出,EJB中的实体Bean(Enity Bean)逐渐被JPA规范所替代,这也是为什么JPA的规范会包含在EJB3的规范中的原因.

但JPA不仅能够在EJB环境中使用,也能够在J2SE的环境中使用,相对于EJB2.X的实体BEAN,使用的范围更广.

总之,简单的说,JPA虽然出自EJB3,但是其使用的范围却大于EJB3,不仅可以在JavaEE5中,也可以在JavaSE的环境中,如图所示EJB3和JPA的关系.

目前已经有多个ORM开源框架支持JPA,如Hibernate,TopLink,OpenJPA等等。

一步一个脚印,方便自己复习,该出手时就出手,有错误,一定要指正,非常感谢,共同进步!

最新文章

  1. python --> 正则表达式
  2. Getting Started with WebRTC [note]
  3. JavaScript学习笔记-面向对象的模块化编程
  4. shell命令date
  5. C#在后台运行操作:BackgroundWorker的用法
  6. servlet中中文乱码问题
  7. ASP.NET路由系统实现原理:HttpHandler的动态映射
  8. grep -A -B选项详解和mysqlbinlog
  9. 微软职位内部推荐-Senior Software Development En
  10. 《ruby编程语言》笔记 1
  11. 常用webservice接口案例
  12. JBossESB教程(二)——将JBossESB部署到JBossAS中
  13. 拼接xml时出现内存溢出解决办法
  14. yii2 中布局文件的 设置方法
  15. Greatest Common Increasing Subsequence hdu1423
  16. 44.Odoo产品分析 (五) – 定制板块(1) – 管理odoo安装(1)
  17. HTTP的基本原理
  18. 异常:Data = 由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。
  19. codeforces433B
  20. 一个完整Java Web项目背后的密码

热门文章

  1. windows上安装Maven与Gradle
  2. WordConut
  3. C++ queue
  4. python安装scrapy等库需要c++ 14.0 下载链接放这里
  5. 【转】GT 的性能测试方案解析
  6. C++类有继承时,析构函数必须为虚函数
  7. linux环境:创建数据库用户,表空间,启动数据库
  8. Tomcat9.0.13 Bug引发的java.io.IOException:(打开的文件过多 Too many open files)导致服务假死
  9. (转载)Ubuntu 安装GNU Scientific library(GSL)
  10. pip 国内源 配置