ORM-08-EclipseLink 入门介绍

拓展阅读

The jdbc pool for java.(java 手写 jdbc 数据库连接池实现)
The simple mybatis.(手写简易版 mybatis)

1. EclipseLink概述

本章介绍了EclipseLink及其关键特性:包括在EclipseLink中的组件、元数据、应用程序架构、映射和API。

本章包括以下几个部分:

理解EclipseLink

关键特性

关键概念

关键组件

关键工具

EclipseLink是一个开源的映射和持久化框架,用于在Java环境中使用,包括Java平台标准版(Java SE)和Java平台企业版(Jakarta EE)。EclipseLink项目由Eclipse基金会支持。

EclipseLink完全实现了以下规范,并对这些规范进行了扩展:

1. Jakarta持久性API(JPA)

JPA是用于对象/关系映射(ORM)的Java API,其中Java对象被映射到数据库构件,以便在Java应用程序中管理关系数据。JPA包括Java持久性查询语言(JPQL)、Java持久性标准API和用于定义对象/关系映射元数据的Java API和XML模式。

最新版本的规范是JSR 338:Java持久性2.2。请参阅http://jcp.org/en/jsr/detail?id=338。

一些EclipseLink对标准JPA的扩展包括:对非关系(NoSQL)数据库的映射支持。在软件即服务(SaaS)环境中有用的功能,包括租户隔离、可扩展实体、外部元数据源。用于RESTful Web服务的Java API(JAX-RS,在JSR 311中定义)。许多其他额外的注解、注解扩展、Java持久性查询语言(JPQL)扩展、JPA查询定制扩展和持久性属性扩展。

2. Java XML绑定体系结构(JAXB)

JAXB是用于对象/XML映射(OXM)的Java API,其中XML文档基于XML文档的XSD模式绑定到Java对象。JAXB提供了将XML实例文档解组(读取)为Java内容树的方法,然后将Java内容树组合(写入)回XML实例文档。JAXB还提供了从Java对象生成XML模式的方法。

最新版本的规范是JSR 222:Java XML绑定(JAXB)2.0。请参阅http://jcp.org/en/jsr/detail?id=222。

EclipseLink JAXB实现是EclipseLink MOXy组件的一部分,它扩展了EclipseLink JAXB以支持JavaScript对象表示法(JSON)文档。EclipseLink在读取和写入JSON时支持所有对象/XML选项。MOXy还包括对旧的本机EclipseLink对象/XML API的支持。

除了上述标准规范的实现外,EclipseLink还包括以下内容:

3. EclipseLink数据库Web服务(DBWS)

DBWS是一种开发工具和运行时,用于通过Web服务提供符合Jakarta EE标准、客户端中立的对关系数据库构件的访问。开发工具DBWS Builder是一个命令行实用程序,它生成必要的部署构件。(DBWS Builder已集成到Eclipse Dali Java持久性工具集和Oracle JDeveloper中。)运行时提供程序获取服务描述符(以及相关的部署构件),并将其实现为JAX-WS 2.0 Web服务。运行时使用EclipseLink在数据库和Web服务客户端使用的XML SOAP消息之间进行桥接。

4. EclipseLink企业信息服务(EIS)

EIS是通过Java连接器体系结构(JCA)资源适配器启用对数据存储的使用的工具。使用XML元数据,配置和映射交互及其交换的数据到一个领域模型中。交互数据可以从Common Client接口(CCI)或使用XML模式进行映射。这种用法适用于非关系型数据存储,其中不提供JDBC或SQL访问。

EclipseLink可与各种Java企业版(Jakarta EE)和Java应用程序架构一起使用。使用EclipseLink设计、实现、部署和优化高级的对象持久化和对象转换层,支持各种数据源和格式,包括关系数据库、非关系(NoSQL)数据库、XML、JSON和Web服务。

EclipseLink支持在Jakarta EE、Java SE和包括与各种应用服务器的集成的Web容器中进行Java持久性,包括:

  • Oracle WebLogic Server
  • Oracle Glassfish Server
  • JBoss Web Server
  • IBM WebSphere应用服务器
  • SAP NetWeaver
  • Oracle Containers for Jakarta EE (OC4J)
  • 其他各种Web容器,如Apache Tomcat、Eclipse Gemini、IBM WebSphere CE和SpringSource Server

EclipseLink允许您快速捕获和定义对象与数据源以及对象与数据表示的映射,采用灵活、高效的元数据格式。

运行时允许您的应用程序利用这种映射元数据,通过提供深度支持数据访问、查询、事务(具有和不具有外部事务控制器的事务)和缓存的简单会话外观。

有关EclipseLink的更多信息,请参阅"关键特性"。

什么是对象持久性不匹配?

在创建企业Java应用程序时,Java到数据源的集成是一个被广泛低估的问题。这个复杂的问题涉及不仅仅是从数据源读取和写入。数据源元素包括表、行、列以及主键和外键。Java和Jakarta EE编程语言包括实体类(普通Java类)、业务规则、复杂关系和继承。在非关系数据源中,您必须将Java实体与XML元素和模式进行匹配。

成功的解决方案需要桥接这些不同的技术,并解决对象持久性不匹配的问题,这是一个具有挑战性和资源密集型的问题。要解

决这个问题,您必须解决Jakarta EE和数据源元素之间的以下问题:

  • 基本上是不同的技术
  • 不同的技能集
  • 每种技术都有不同的人员和所有权
  • 不同的建模和设计原则

作为应用程序开发者,您需要一个产品,能够让您将Java应用程序与任何数据源集成,而不会影响应用程序设计或数据完整性。此外,作为Java开发者,您需要能够使用关系数据库或非关系数据源作为存储库存储(即持久化)和检索业务域对象的能力。

EclipseLink解决方案

EclipseLink解决了Java对象和数据源之间的差异。它包含一个持久化框架,允许您构建结合对象技术最佳方面和特定数据源的应用程序。

您可以执行以下操作:

  • 将Java对象持久化到几乎任何关系数据库
  • 在Java对象与XML和JSON文档之间执行内存转换
  • 将任何对象模型映射到任何关系或非关系模式
  • 即使您不熟悉SQL或JDBC,也可以成功使用EclipseLink,因为EclipseLink提供了数据源的清晰、面向对象的视图

关键特性

提供了一系列广泛的功能,您可以利用这些功能快速构建高性能、可扩展和可维护的企业应用程序。

以下是一些主要特性:

  1. 非侵入性、灵活、基于元数据的架构

  2. 先进的映射支持和灵活性:关系型、对象关系型数据类型和XML

  3. 针对高度可扩展的性能和并发进行优化,具有广泛的性能调整选项

  4. 全面的对象缓存支持,包括一些应用服务器的集群集成(如Oracle Fusion Middleware Server)

  5. 广泛的查询功能,包括:Java持久性查询语言(JPQL)、本机SQL和EclipseLink表达式框架

  6. 即时读取

  7. 对象级事务支持,并与流行的应用服务器和数据库集成

  8. 乐观和悲观锁定选项以及锁定策略

有关更多信息和下载,请访问EclipseLink主页:

http://www.eclispe.org/eclipselink/

相关推荐
吾日三省吾码7 分钟前
JVM 性能调优
java
弗拉唐1 小时前
springBoot,mp,ssm整合案例
java·spring boot·mybatis
oi772 小时前
使用itextpdf进行pdf模版填充中文文本时部分字不显示问题
java·服务器
重生之Java开发工程师2 小时前
MySQL中的CAST类型转换函数
数据库·sql·mysql
少说多做3432 小时前
Android 不同情况下使用 runOnUiThread
android·java
知兀2 小时前
Java的方法、基本和引用数据类型
java·笔记·黑马程序员
蓝黑20202 小时前
IntelliJ IDEA常用快捷键
java·ide·intellij-idea
Ysjt | 深2 小时前
C++多线程编程入门教程(优质版)
java·开发语言·jvm·c++
凌冰_2 小时前
IDEA2023 SpringBoot整合MyBatis(三)
spring boot·后端·mybatis