ORM-08-EclipseLink 入门介绍

news2024/11/17 19:40:35

拓展阅读

The jdbc pool for java.(java 手写 jdbc 数据库连接池实现)

The simple mybatis.(手写简易版 mybatis)

1. EclipseLink概述

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

本章包括以下几个部分:

理解EclipseLink

关键特性

关键概念

关键组件

关键工具

理解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/

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1410890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

202|读书笔记《金融的本质:伯南克四讲美联储》

今天跟朋友聊天💬,说已经没人看书了📖 我想, 还是会有人读书的吧。 ​ 一、美联储的起源和使命 1. 第一讲:美国南北战争结束后的40年间,美国经历了6次大的银行体系恐慌,促使其于1913年成立美联储…

如何在Word中选择多个图片?这里提供两个方法及详细步骤

你的Word文档中可能有一些图片。要更改图片的几个参数,可以逐个编辑它们。当你有更多的图片时,你可能需要一次选择所有图片。这允许你一次更改所有内容。默认情况下,Word不允许你一次选择多张图片。 Word插入图片的两个布局选项 文字环绕 嵌入文本中 默认情况下,Word会在文…

注册表学习——注册表结构

简介:注册表是由很多项和值构成的。 HEKY_USERS(HKU) 主要保存默认用户及当前登录用户配置信息。 .DEFAULT 该项是针对未来创建的新用户所保存的默认配置项。 S-1-5-18等项 这些项叫作安全标识符(SID)用来表示Windows操…

初识C语言·自定义类型(2)

目录 1 结构体的声明和定义 2 结构体的自引用 3 结构体成员访问操作符 4 内存对齐 4 结构体传参 5 位段 1 结构体的声明和定义 什么是结构?结构也就是元素的集合,在C语言里面,结构体里面的可以有多个变量,类似于集合中的元素…

下载并安装nacos 2.3 for arm64

客户组织安全测试,我们系统测出了好几个高危问题,其中大部分是关于nacos的。 原先的nacos版本太低了,是1.3的。现在(2024.01)已经是2.3了,应该装个新的。我们使用docker安装nacos,原本很简单的…

程序员必备的20个学习网站

今天好学编程小编整理了20个程序员必备的学习网站,此篇对于新手程序员比较有用,技术老鸟们也可以查缺补漏。话不多说,纯纯干货呈上,赶紧点个赞收藏,以后会用得上! 技术网站类 1、博客园 一个面向开发者的…

基于SSM的蛋糕甜品店管理系统(有报告)。Javaee项目。ssm项目。

演示视频: 基于SSM的蛋糕甜品店管理系统(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring…

【网站项目】基于SSM的251国外摇滚乐队交流和周边售卖系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

opencv012 滤波器04 中值滤波,双边滤波

中值滤波 取中位数,可以处理椒盐噪音 CV自带medianBlur函数dst cv2.medianBlur(src, ksize) 参数说明:1.src: 需要滤波的图片;2.ksize:核大小,必须是比1大的奇数【举个例子:3,5,7……

司铭宇老师:企业销售培训:企业培训销售效果评估与质量提升

企业销售培训:企业培训销售效果评估与质量提升 随着市场竞争的日益激烈,企业越来越重视员工培训,希望通过高质量的培训提高员工的技能和素质,进而提升企业的竞争力和业绩。然而,在实践中,很多企业的培训销售…

Redis——list以及他的应用场景

介绍 :list 即是 链表。链表是一种非常常见的数据结构,特点是易于数据元素的插入和删除并且且可以灵活调整链表长度,但是链表的随机访问困难。许多高级编程语言都内置了链表的实现比如 Java 中的 LinkedList,但是 C 语言并没有实现…

安泰电子ATA-3080功率放大器在雷达系统无线电能传输中的具体应用

雷达技术在现代通信和导航系统中起着至关重要的作用。而功率放大器作为一种关键的电子器件,在雷达无线电能传输中扮演着不可或缺的角色。功率放大器负责将来自雷达发射机的低功率无线电信号放大到足够高的水平,以便能够穿透大气层,传输到远距…

江大白 | 万字长文图解Numpy教程,看这一篇就够了!

本文来源公众号“江大白”,仅用于学术分享,侵权删,干货满满,有超级详细的图解。 原文链接:万字长文图解Numpy教程,看这一篇就够了! (qq.com) 以下文章来源于博客:Medium 作者&…

周鸿祎回应坚定支持华为:因为 360 也被制裁了

在昨天的华为鸿蒙生态千帆启航仪式上,360集团创始人兼CEO周鸿祎发表演讲表示,360坚定地支持华为的决定源于双方都曾遭到制裁。周鸿祎在演讲中提到:“在华为最早被制裁的时候,我们是少数几个公开站出来坚定支持华为的公司。其实也很…

transformer详解

transformer详解 1.从全局角度概括transformer2.位置编码详细解读3.注意力机制4.残差连接5.Batch Normal6.layer normal7.decode 1.从全局角度概括transformer 一个典型的编码器-解码器的结构,类似于sequence-to-sequence 这6(可以自己定)个…

接口文档swagger2的使用

Spring-接口文档swagger2 1、swagger/knife4j 接口文档配置 ​ knife4j是swagger的增强版本&#xff0c;更加的小巧、轻量&#xff0c;功能也是更加的完善&#xff0c;UI也更加的清晰&#xff1b;可以从swagger到knife4j无缝切换。 1.1 引入相关依赖 <!--接口文档的开发:…

FastDeploy项目简介,使用其进行(图像分类、目标检测、语义分割、文本检测|orc部署)

FastDeploy是一款全场景、易用灵活、极致高效的AI推理部署工具&#xff0c; 支持云边端部署。提供超过 &#x1f525;160 Text&#xff0c;Vision&#xff0c; Speech和跨模态模型&#x1f4e6;开箱即用的部署体验&#xff0c;并实现&#x1f51a;端到端的推理性能优化。包括 物…

Django从入门到精通(三)

目录 七、ORM操作 7.1、表结构 常见字段 参数 示例 7.2、表关系 一对多 多对多 第一种方式 第二种方式 7.3、连接MYSQL 7.4、数据库连接池 7.5、多数据库 读写分离 分库&#xff08;多个app ->多数据库&#xff09; 分库&#xff08;单app&#xff09; 注意…

坚持刷题 | 平衡二叉树

文章目录 题目考察点代码实现实现总结对实现进一步改进扩展提问 坚持刷题&#xff0c;老年痴呆追不上我&#xff0c;今天继续二叉树&#xff1a;平衡二叉树 题目 110.平衡二叉树 考察点 递归能力&#xff1a; 能否使用递归来解决问题。树的基本操作&#xff1a;能否正确地访…

10.Elasticsearch应用(十)

Elasticsearch应用&#xff08;十&#xff09; 1.为什么需要聚合操作 聚合可以让我们极其方便的实现对数据的统计、分析、运算&#xff0c;例如&#xff1a; 什么品牌的手机最受欢迎&#xff1f;这些手机的平均价格、最高价格、最低价格&#xff1f;这些手机每月的销售情况如…