簡單模板網站制作時間百度優(yōu)化是什么意思
拓展閱讀
The jdbc pool for java.(java 手寫 jdbc 數(shù)據(jù)庫連接池實現(xiàn))
The simple mybatis.(手寫簡易版 mybatis)
1. EclipseLink概述
本章介紹了EclipseLink及其關鍵特性:包括在EclipseLink中的組件、元數(shù)據(jù)、應用程序架構、映射和API。
本章包括以下幾個部分:
理解EclipseLink
關鍵特性
關鍵概念
關鍵組件
關鍵工具
理解EclipseLink
EclipseLink是一個開源的映射和持久化框架,用于在Java環(huán)境中使用,包括Java平臺標準版(Java SE)和Java平臺企業(yè)版(Jakarta EE)。EclipseLink項目由Eclipse基金會支持。
EclipseLink完全實現(xiàn)了以下規(guī)范,并對這些規(guī)范進行了擴展:
1. Jakarta持久性API(JPA)
JPA是用于對象/關系映射(ORM)的Java API,其中Java對象被映射到數(shù)據(jù)庫構件,以便在Java應用程序中管理關系數(shù)據(jù)。JPA包括Java持久性查詢語言(JPQL)、Java持久性標準API和用于定義對象/關系映射元數(shù)據(jù)的Java API和XML模式。
最新版本的規(guī)范是JSR 338:Java持久性2.2。請參閱http://jcp.org/en/jsr/detail?id=338。
一些EclipseLink對標準JPA的擴展包括:對非關系(NoSQL)數(shù)據(jù)庫的映射支持。在軟件即服務(SaaS)環(huán)境中有用的功能,包括租戶隔離、可擴展實體、外部元數(shù)據(jù)源。用于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模式的方法。
最新版本的規(guī)范是JSR 222:Java XML綁定(JAXB)2.0。請參閱http://jcp.org/en/jsr/detail?id=222。
EclipseLink JAXB實現(xiàn)是EclipseLink MOXy組件的一部分,它擴展了EclipseLink JAXB以支持JavaScript對象表示法(JSON)文檔。EclipseLink在讀取和寫入JSON時支持所有對象/XML選項。MOXy還包括對舊的本機EclipseLink對象/XML API的支持。
除了上述標準規(guī)范的實現(xiàn)外,EclipseLink還包括以下內容:
3. EclipseLink數(shù)據(jù)庫Web服務(DBWS)
DBWS是一種開發(fā)工具和運行時,用于通過Web服務提供符合Jakarta EE標準、客戶端中立的對關系數(shù)據(jù)庫構件的訪問。開發(fā)工具DBWS Builder是一個命令行實用程序,它生成必要的部署構件。(DBWS Builder已集成到Eclipse Dali Java持久性工具集和Oracle JDeveloper中。)運行時提供程序獲取服務描述符(以及相關的部署構件),并將其實現(xiàn)為JAX-WS 2.0 Web服務。運行時使用EclipseLink在數(shù)據(jù)庫和Web服務客戶端使用的XML SOAP消息之間進行橋接。
4. EclipseLink企業(yè)信息服務(EIS)
EIS是通過Java連接器體系結構(JCA)資源適配器啟用對數(shù)據(jù)存儲的使用的工具。使用XML元數(shù)據(jù),配置和映射交互及其交換的數(shù)據(jù)到一個領域模型中。交互數(shù)據(jù)可以從Common Client接口(CCI)或使用XML模式進行映射。這種用法適用于非關系型數(shù)據(jù)存儲,其中不提供JDBC或SQL訪問。
EclipseLink可與各種Java企業(yè)版(Jakarta EE)和Java應用程序架構一起使用。使用EclipseLink設計、實現(xiàn)、部署和優(yōu)化高級的對象持久化和對象轉換層,支持各種數(shù)據(jù)源和格式,包括關系數(shù)據(jù)庫、非關系(NoSQL)數(shù)據(jù)庫、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允許您快速捕獲和定義對象與數(shù)據(jù)源以及對象與數(shù)據(jù)表示的映射,采用靈活、高效的元數(shù)據(jù)格式。
運行時允許您的應用程序利用這種映射元數(shù)據(jù),通過提供深度支持數(shù)據(jù)訪問、查詢、事務(具有和不具有外部事務控制器的事務)和緩存的簡單會話外觀。
有關EclipseLink的更多信息,請參閱“關鍵特性”。
什么是對象持久性不匹配?
在創(chuàng)建企業(yè)Java應用程序時,Java到數(shù)據(jù)源的集成是一個被廣泛低估的問題。這個復雜的問題涉及不僅僅是從數(shù)據(jù)源讀取和寫入。數(shù)據(jù)源元素包括表、行、列以及主鍵和外鍵。Java和Jakarta EE編程語言包括實體類(普通Java類)、業(yè)務規(guī)則、復雜關系和繼承。在非關系數(shù)據(jù)源中,您必須將Java實體與XML元素和模式進行匹配。
成功的解決方案需要橋接這些不同的技術,并解決對象持久性不匹配的問題,這是一個具有挑戰(zhàn)性和資源密集型的問題。要解
決這個問題,您必須解決Jakarta EE和數(shù)據(jù)源元素之間的以下問題:
- 基本上是不同的技術
- 不同的技能集
- 每種技術都有不同的人員和所有權
- 不同的建模和設計原則
作為應用程序開發(fā)者,您需要一個產品,能夠讓您將Java應用程序與任何數(shù)據(jù)源集成,而不會影響應用程序設計或數(shù)據(jù)完整性。此外,作為Java開發(fā)者,您需要能夠使用關系數(shù)據(jù)庫或非關系數(shù)據(jù)源作為存儲庫存儲(即持久化)和檢索業(yè)務域對象的能力。
EclipseLink解決方案
EclipseLink解決了Java對象和數(shù)據(jù)源之間的差異。它包含一個持久化框架,允許您構建結合對象技術最佳方面和特定數(shù)據(jù)源的應用程序。
您可以執(zhí)行以下操作:
- 將Java對象持久化到幾乎任何關系數(shù)據(jù)庫
- 在Java對象與XML和JSON文檔之間執(zhí)行內存轉換
- 將任何對象模型映射到任何關系或非關系模式
- 即使您不熟悉SQL或JDBC,也可以成功使用EclipseLink,因為EclipseLink提供了數(shù)據(jù)源的清晰、面向對象的視圖
關鍵特性
提供了一系列廣泛的功能,您可以利用這些功能快速構建高性能、可擴展和可維護的企業(yè)應用程序。
以下是一些主要特性:
-
非侵入性、靈活、基于元數(shù)據(jù)的架構
-
先進的映射支持和靈活性:關系型、對象關系型數(shù)據(jù)類型和XML
-
針對高度可擴展的性能和并發(fā)進行優(yōu)化,具有廣泛的性能調整選項
-
全面的對象緩存支持,包括一些應用服務器的集群集成(如Oracle Fusion Middleware Server)
-
廣泛的查詢功能,包括:Java持久性查詢語言(JPQL)、本機SQL和EclipseLink表達式框架
-
即時讀取
-
對象級事務支持,并與流行的應用服務器和數(shù)據(jù)庫集成
-
樂觀和悲觀鎖定選項以及鎖定策略
有關更多信息和下載,請訪問EclipseLink主頁:
http://www.eclispe.org/eclipselink/