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