欢迎来到天天文库
浏览记录
ID:38581497
大小:221.50 KB
页数:25页
时间:2019-06-15
《JPA开发文档(大全)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、JPA开发文档(大全)这是一份比较全面的JPA文档,希望能够帮助大家,让大家更好的学习工作。 1.发展中的持久化技术31.1JDBC31.2关系对象映射(ObjectRelationalMapping,ORM)31.3Java数据对象(JavaDataObject,JDO)31.4JavaPersistenceAPI(JPA)32.JPA体系架构53.EntityBean73.1定义对Entity中属性变量的访问73.2主键和实体标识(PrimaryKeyandEntityIdentity)94.EntityManager104.1配置和获得EntityM
2、anager104.2Entity的生命周期和状态104.3持久化Entity(Persist)114.4获取Entity134.5更新Entity134.6删除Entity134.7脱离/附合(Detach/Merge)145.JPAQuery145.1Query接口155.2简单查询155.3使用参数查询165.4排序(orderby)165.5查询部分属性175.6查询中使用构造器(Constructor)175.7聚合查询(Aggregation)185.8关联(join)195.9比较Entity205.10批量更新(BatchUpdate)21
3、5.11批量删除(BatchRemove)211. 发展中的持久化技术1.1JDBC很多企业应用的开发者选择使用JDBC管理关系型数据库中的数据。JDBC支持处理大量的数据,能够保证数据的一致性,支持信息的并发访问,提供SQL查询语言查找数据。JDBC所使用的关系模型不是为保存对象而设计的,因此迫使开发者选择在处理持久数据时放弃面向对象编程,或者自己去开发将面向对象特性(比如:类之间的继承)和关系型数据库进行映射的专有解决方案。1.2关系对象映射(ObjectRelationalMapping,ORM)ORM是目前完成对象和关系数据表之间的映射最好的
4、一种技术,这些ORM框架处理对象和关系数据库之间的协调工作,将开发者从这部分工作中解脱出来,集中精力处理对象模型。阻碍ORM发展的问题是,现有的每一种ORM产品都有自己特有的API,开发者只能将自己的代码绑定到某一个框架提供商的接口上,这种状况形成了厂商锁定,意味着一旦该框架提供商无法解决系统中出现的严重错误,或者因为其它的原因转而采用其它的框架,将会给开发者的企业应用带来极大的困难,唯一的解决办法是重写所有的持久化代码。1.3Java数据对象(JavaDataObject,JDO)JDO是JavaEE标准中另外一个支持管理持久化数据的规范,JDO规范使用
5、和JPA非常类似的API,只是通常是通过JCA技术集成到应用服务器上。但是JDO是针对轻量级容器而设计的,不能够支持容器级别的声明式安全、事务特性,也无法对远程方法调用提供支持。1.4JavaPersistenceAPI(JPA)EJB3.0规范由三部分组成:EJB3.0SimplifiedAPI、EJB核心规范(EJBCoreContractsandRequirements)和JPA(JavaPersistenceAPI)。JPA规范部分详细的介绍了JPA中实体Bean的定义,并介绍了实体Bean支持的注释、全新的查询语言、实体管理接口、容器实现规范等内
6、容。JPA标准制定过程中充分吸收了目前已经出现的所有持久化技术的所有优点,摒弃了它们存在的局限,使JPA在简单易用、查询能力等方面表现突出。 标准化JPA是JCP组织发布的JavaEE标准之一,因此任何声称符合JPA标准的框架都遵循同样的架构,提供相同的访问API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。 对容器级特性的支持JPA框架中支持大数据集、事务、并发等容器级事务,这使得JPA超越了简单持久化框架的局限,在企业应用发挥更大的作用。 简单易用,集成方便JPA的主要目标之一就是提供更加简单的编程模型:在JPA框
7、架下创建实体和创建Java类一样简单,没有任何的约束和限制,只需要使用javax.persistence.Entity进行注释;JPA的框架和接口也都非常简单,没有太多特别的规则和设计模式的要求,开发者可以很容易的掌握。JPA基于非侵入式原则设计,因此可以很容易的和其它框架或者容器集成。 可媲美JDBC的查询能力JPA定义了独特的JPQL(JavaPersistenceQueryLanguage),JPQL是EJBQL的一种扩展,它是针对实体的一种查询语言,操作对象是实体,而不是关系数据库的表,而且能够支持批量更新和修改、JOIN、GROUPBY、HAVI
8、NG等通常只有SQL才能够提供的高级查询特性,甚至还能够支持子查询
此文档下载收益归作者所有