ORM-08-EclipseLink 入门介绍
拓展阅读
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提供了数据源的清晰、面向对象的视图
关键特性
提供了一系列广泛的功能,您可以利用这些功能快速构建高性能、可扩展和可维护的企业应用程序。
以下是一些主要特性:
-
非侵入性、灵活、基于元数据的架构
-
先进的映射支持和灵活性:关系型、对象关系型数据类型和XML
-
针对高度可扩展的性能和并发进行优化,具有广泛的性能调整选项
-
全面的对象缓存支持,包括一些应用服务器的集群集成(如Oracle Fusion Middleware Server)
-
广泛的查询功能,包括:Java持久性查询语言(JPQL)、本机SQL和EclipseLink表达式框架
-
即时读取
-
对象级事务支持,并与流行的应用服务器和数据库集成
-
乐观和悲观锁定选项以及锁定策略
有关更多信息和下载,请访问EclipseLink主页:
http://www.eclispe.org/eclipselink/
相关文章:

ORM-08-EclipseLink 入门介绍
拓展阅读 The jdbc pool for java.(java 手写 jdbc 数据库连接池实现) The simple mybatis.(手写简易版 mybatis) 1. EclipseLink概述 本章介绍了EclipseLink及其关键特性:包括在EclipseLink中的组件、元数据、应用程序架构、映射和API。 本…...

数据结构之树和二叉树定义
数据结构之树和二叉树定义 1、树的定义2、树的基本概念3、二叉树的定义 数据结构是程序设计的重要基础,它所讨论的内容和技术对从事软件项目的开发有重要作用。学习数据结构要达到的目标是学会从问题出发,分析和研究计算机加工的数据的特性,以…...

大模型学习与实践笔记(十三)
将训练好的模型权重上传到 OpenXLab 方式1: 先将Adapter 模型权重通过scp 传到本地,然后网页上传 步骤1. scp 到本地 命令为: scp -o StrictHostKeyCheckingno -r -P *** rootssh.intern-ai.org.cn:/root/data/ e/opencv/ 步骤2&#…...

计算机网络——网络层(1)
计算机网络——网络层(1) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 网络层:数据平面网络层概述核心功能协议总结 路由器工作原理路由器的工作步骤总结 网际协议IPv4主要特点不足IPv6主要特点现状 通用转发和SDN通用转发SDN(软件…...
解释LoRA参数
目录 LoRA参数含义 LoRA在深度学习中的作用 示例代码中的LoRA应用 结论 LoRA参数含义 LoRA (lora_r): LoRA代表"Low-Rank Adaptation",是一种模型参数化技术,用于在不显著增加参数数量的情况下调整预训练模型。lora_r参数指的是LoRA中的秩&…...

直播核心岗位基础内容
一.直播间核心岗位 1.直播间前端岗位 前端岗位分工 (1)主播岗位职责 (2)场控岗位职责 (3)助理岗位职责 中端岗位分工 (1)运营岗位职责 (2)中控岗位职责 …...

安全防御第三次作业
作业:拓扑图及要求如下图 注:server1是ftp服务器,server2是http服务器 lsw1: 其中g0/0/0口为trunk 实现 1,生产区在工作时间内可以访问服务器区,仅可以访问http服务器 验证: 2,办公…...

WordPress反垃圾评论插件Akismet有什么用?如何使用Akismet插件?
每次我们成功搭建好WordPress网站后,都可以在后台 >> 插件 >> 已安装的插件,在插件列表中可以看到有一个“Akismet反垃圾邮件:垃圾邮件保护”的插件(个人觉得是翻译错误,应该是反垃圾评论)。具…...

力扣80、删除有序数组中的重复项Ⅱ(中等)
1 题目描述 图1 题目描述 2 题目解读 对于有序数组nums,要求在不使用额外数组空间的条件下,删除数组nums中重复出现的元素,使得nums中出现次数超过两次的元素只出现两次。返回删除后数组的新长度。 3 解法一:双指针 双指针法可以…...

探索HTMLx:强大的HTML工具
1. HTMLX htmx 是一个轻量级的 JavaScript 库,它允许你直接在 HTML 中使用现代浏览器的功能,而不需要编写 JavaScript 代码。通过 htmx,你可以使用 HTML 属性执行 AJAX 请求,使用 CSS 过渡动画,利用 WebSocket 和服务…...

NC65中间件能启动,前端客户端启动失败,加载异常,卡住(org.owasp.esapi)
控制台输出错误 ESAPI.properties could not be loaded by any means. Fail.SecurityConfiguration class(org.owasp.esapi.reference.DefaultSecurityConfiguration) CTOR threw exception.效果图: 解决方案 添加如下参数: -Dorg.owasp.esapi.resou…...

【大数据】YARN调度器及调度策略
YARN调度器 YARN负责作业资源调度,在集群中找到满足业务的资源,帮助作业启动任务,管理作业的生命周期。 YARN技术架构 目前,Hadoop作业调度器主要有三种:先进先出调度器(First In First Out&…...
如何快速入门Python指南
在数字化时代,掌握一门编程语言已成为众多行业和职业必备的技能之一。Python以其简洁易读的语法、丰富的库资源以及强大的跨领域应用能力,成为了初学者学习编程的理想选择。本文旨在为新手提供一套全面且深入的Python学习路径,并结合实践建议…...

vue3 页面长时间不使用,再次点击页面切换路由 操作无效报错
问题描述: 使用Vite打包构建的项目,重新部署到生产。在部署期间用户一直停留在当前项目页面(长时间无操作 半个小时),部署完成后点击页面上的路由,报错! 刷新后恢复正常。出现问题原因: 上线打…...

【算法练习】leetcode算法题合集之动态规划篇
普通动规系列 LeetCode343. 整数拆分 LeetCode343. 整数拆分 将10的结果存在索引为10的位置上,需要保证数组长度是n1,索引的最大值是n,索引是从0开始的。 n的拆分,可以拆分为i和n-i,当然i可以继续拆分。而且拆分为n-…...

青少年人工智能实验基地解决方案
1. 方案背景 1.1人工智能创新教育解决方案背景 人工智能已成为引领未来的新兴技术,中国将人工智能列为国家重点发展战略,对人工智能的发展做出了总体部署,全面加速人工智能在研发应用和人才培养的步伐。2021年1月教育部官网公布《关于政协十…...

10个让你的明星网红推广事半功倍的技巧-华媒舍
明星网红已成为市场推广和品牌宣传的重要方式。要在竞争激烈的市场中脱颖而出,并吸引更多的观众和粉丝,需要一些科学而有效的技巧。本文将向你介绍10个让你的明星网红推广事半功倍的技巧。 技巧一:建立个人品牌 成功的明星网红通常都有独特而…...

k8s集群异常恢复
前提、我自己的k8s采用的是单master节点两个从节点部署,我针对单master情况进行恢复说明 场景一:正常开关虚拟机,可直接重启kubelet进行恢复 1、1、一般重启后三个节点都需要检查,输入命令检查kubelet: systemctl s…...

NOC总线(2)
1. NoC的路由 在NoC交换信息时,需要确定从源节点到目标节点所经过的路径,这时就需要路由算法来确定该路径。路由算法分为静态路由算法和动态路由算法两种。 静态路由算法对于两节点之间的路径是固定的,结构简单,便于硬件实…...
2401llvm,clang的libtooling
LibTooling(库工具) LibTooling是个支持基于Clang编写独立工具的库. 在此,为LLVM安装Clang工具 介绍 用LibTooling构建的工具(如Clang插件)通过代码运行FrontendActions. 这里演示运行Clang的快速检查一堆代码语法的SyntaxOnlyAction的不同方法. 解析内存中的代码片 如果想…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...

mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...

沙箱虚拟化技术虚拟机容器之间的关系详解
问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西,但是如果把三者放在一起,它们之间到底什么关系?又有什么联系呢?我不是很明白!!! 就比如说: 沙箱&#…...