JPA学习总结

一 概念
Java Persistence API(JPA)是 EJB 3.0 新引入的数据持久化编程模型,它利用 Java 5 中的注释(Annotation)和对象/关系映射,为数据持久化提供了更简单、易用的编程方式。

二 JPA 的优势
1 标准化
JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问 API,这保证了基于 JPA 开发的企业应用能够经过少量的修改就能够在不同的 JPA 框架下运行。
2 对容器级特性的支持
JPA 框架中支持大数据集、事务、并发等容器级事务,这使得 JPA 超越了简单持久化框架的局限,在企业应用发挥更大的作用。
3 简单易用,集成方便
JPA 的主要目标之一就是提供更加简单的编程模型:在 JPA 框架下创建实体和创建 Java 类一样简单,没有任何的约束和限制,只需要使用 javax.persistence.Entity 进行注释;JPA 的框架和接口也都非常简单,没有太多特别的规则和设计模式的要求,开发者可以很容易的掌握。JPA 基于非侵入式原则设计,因此可以很容易的和其它框架或者容器集成。
4 可媲美 JDBC 的查询能力
JPA 定义了独特的 JPQL(Java Persistence Query Language),JPQL 是 EJB QL 的一种扩展,它是针对实体的一种查询语言,操作对象是实体,而不是关系数据库的表,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询。
5 支持面向对象的高级特性
JPA 中能够支持面向对象的高级特性,比如类之间的继承、多态和类之间的复杂关系,这样的支持能够让开发者最大限度的使用面向对象的模型设计企业应用,而不需要自行处理这些特性在关系数据库的持久化。

三 OpenJPA 简介
OpenJPA 是 Apache 组织提供的开源项目,它实现了 EJB 3.0 中的 JPA 标准,为开发者提供功能强大、使用简单的持久化数据管理框架。OpenJPA 封装了和关系型数据库交互的操作,让开发者把注意力集中在编写业务逻辑上。OpenJPA 可以作为独立的持久层框架发挥作用,也可以轻松的与其它 Java EE 应用框架或者符合 EJB 3.0 标准的容器集成。

四 Spring2.0的的新特性
1.引入基于Xml-Schema的配置语法,简化了Xml的配置
2.引入新的Bean作用域(request和session范围)
3.可扩展的容器级Xml配置(Spring官方文档将这个功能上升到了DSL级别)
4.AOP有了很大改进,更无缝地整合了AspectJ,为管理Spring容器外的对象提供了可能
5.JdbcTemplate的改进(增加了NamedParameterJdbcTemplate和SimpleJdbcTemplate)
6.更简单的事务配置
7.Spring Web MVC的大幅改进和增强(引入了CoC的观点和增强了的标签库)
8.Spring的Scheduling支持引入TaskExecutor抽象
9.支持JPA,支持异步JMS,更好的JMX支持
10.支持动态语言,JRuby,Groovy,BeanShell

五 其它
1 JPA是需要Provider来实现其功能的,Hibernate就是JPA Provider中很强的一个,目前来说应该无人能出其右。从功能上来说,JPA现在就是Hibernate功能的一个子集。
2 在spring 2.0.1中,正式提供对jpa的支持,目前支持的实现包括toplink,hibernate entitymanager以及openjpa。
3 TopLink收费,也开源了。OpenJPA虽然免费,但功能,性能,普及性更加不用一提。

六 参考资料
1《Spring2.0的的新特性》
http://spirit.jay.blog.163.com/blog/static/9889320200742105054422/

2《使用 Apache OpenJPA 开发 EJB 3.0 应用》 很好的,推荐!!!!!
http://www.ibm.com/developerworks/cn/java/j-lo-openjpa1/
3《感受jpa 》
http://www.javaeye.com/article/49568

你可能感兴趣的:(Java&J2EE,jpa,hibernate,spring,持久层框架,ejb,框架)