TopLink中的 ”persistence.xml” 文件的解析
[JPA是什么]
JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用的对象持久化的开发工作;其二,Sun希望整合对ORM技术,实现天下归一。
JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分。但它不囿于EJB 3.0,你可以在Web应用、甚至桌面应用中使用。JPA的宗旨是为POJO提供持久化标准规范,由此可见,经过这几年的实践探索,能够脱离容器独立运行,方便开发和测试的理念已经深入人心了。目前Hibernate 3.2、TopLink 10.1.3以及OpenJPA都提供了JPA的实现。
JPA的总体思想和现有Hibernate、TopLink,JDO等ORM框架大体一致。总的来说,JPA包括以下3方面的技术:
ORM映射元数据,JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中;
JPA 的API,用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。
查询语言,这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。
[什么是persistence.xml文件]
在JPA中,配置了数据库表和实体Bean之间的映射关系,配置了数据库连接的配置信息。
类似于中的hibernate中的” Hibernate.cfg.xml”等配置文件的作用。
[什么是TopLink]
Oracle提供的一个实现JPA的产品,现在源代码已经提供给了Sun的GlassFish项目。
URL: http://oss.oracle.com/oracle-eclipse-projects.html
[TopLink中如何实现对” persistence.xml”文件的解析]
以下请自行下载代码参考
1. 当一个新的jar之类的应用程序被打包发布到TOPLINK之后,开始启动以下常驻服务
2. 类名:AutoDeployMonitor
函数名:run()
3. 类名:AutoDeployer
函数名:deploy(MonitorableEntry entry, File archive)
4. 类名:AutoDeployer
函数名:deploy(File archive)
5. 类名:DeployerFactory
函数名:getDeployer(DeploymentRequest request)
6. 类名:DeployerFactory
函数名:getAppDeployer(DeploymentRequest request)
7. 类名:PersistenceDeploymentDescriptorFile
函数名:getDeploymentDescriptorPath()
8. 类名:PersistenceUnitProcessor
函数名:processPersistenceXML(URL baseURL, InputStream input, ClassLoader loader)
9. 类名:ersistenceContentHandler
读取XML文件
10. 将读取的XML Node信息存储到SEPersistenceUnitInfo类,然后交给具体的逻辑处理程序
分享到:
相关推荐
- **OpenJPA/JPA**:主要通过 `persistence.xml` 文件来进行配置,也可以通过程序代码中的 `Properties` 对象来指定配置参数。 **3. 会话管理** - **Hibernate**:每个线程通常会有一个独立的 `Session` 实例,...
10. **xercesImpl-2.6.2.jar**:Xerces是Apache的一个XML解析器,实现了W3C的DOM、SAX和XML Schema规范,用于解析和验证XML文档。 这些库组合在一起,可以构建出一个功能强大的Java应用,包括SSH连接、数据库操作、...
标题中的"ssh+dwr坚决不冲突的jar"指的是在Java Web开发中,使用Spring(SSH)框架和Direct Web Remoting (DWR) 框架时,可能存在的一些库依赖冲突问题,而这个压缩包文件提供了可以避免这些冲突的特定版本的JAR文件...
1. 使用`javax.persistence.Entity`注解或XML映射文件中的对应元素标记。 2. 需包含无参构造函数,且类本身不可声明为`final`。 3. 若实体对象需通过会话Bean的远程业务接口传递,需实现`Serializable`接口。 4. ...
- **dom4j.jar**:一个简单、高效的XML解析和处理库。 - **javassist.jar**:JavaAssist是一个用于生成和修改Java字节码的框架,用于实现AOP等功能。 - **jta.jar**:Java Transaction API,用于实现分布式事务。 - ...
元数据可以通过JPA注解或者XML配置文件来定义,它告诉JPA如何将Java对象映射到数据库表中。 **1.1.4 实体(entity)** 实体是JPA的核心概念之一,代表数据库中的记录。每个实体类都需要通过`javax.persistence.Entity...
3. **Hibernate的实体映射**:了解如何创建Java实体类,并使用Hibernate注解或XML映射文件将它们与数据库表关联。 4. **JPA的使用**:掌握JPA的基本概念,如EntityManager、Entity、Query等,以及如何通过JPA进行...
13. **XML 处理**:学习 XML API,如 JAXP、JDOM、DOM4J、JAXR,用于解析和操作 XML 文档。 14. **Web 服务**:掌握构建 Web 服务的技术,如 JAX-RPC、SAAJ、JAXB、JAXM、JAXR 或 JWSDP。 15. **轻量级框架**:...
JPA(Java Persistence API)是Java EE中用于对象关系映射(ORM)的标准API,它简化了与数据库的交互。在这个项目中,JPA可能与TopLink或者Hibernate等提供商结合,将Java对象转换为SQL语句,从而进行数据存储和检索...
通过注解`@Entity`、`@Table`、`@Id`等,开发者可以轻松地定义实体类及其持久化行为,而无需编写复杂的Hibernate或TopLink映射文件。 2. **会话Bean**:会话Bean在EJB3.0中也得到了简化。通过`@Stateless`、`@...
- dom4j,JDOM,Xerces,XMLBeans:XML解析和转换。 24. **BI(商业智能)**: - Pentaho:BI解决方案。 25. **Bug跟踪**: - Bugzilla:常用的Bug跟踪系统。 26. **Java媒体库**: - Java3D,Fusionet,...