freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

jpa開發(fā)文檔(已修改)

2025-08-20 23:30 本頁面
 

【正文】 JPA開發(fā)文檔 JPA 11. 發(fā)展中的持久化技術(shù) 3 JDBC 3 關(guān)系對(duì)象映射(Object Relational Mapping,ORM) 3 Java 數(shù)據(jù)對(duì)象(Java Data Object,JDO) 3 Java Persistence API(JPA) 32. JPA 體系架構(gòu) 53. Entity Bean 7 7 主鍵和實(shí)體標(biāo)識(shí)(Primary Key and Entity Identity) 94. EntityManager 10 配置和獲得EntityManager 10 Entity的生命周期和狀態(tài) 10 持久化Entity(Persist) 11 獲取Entity 13 更新Entity 13 刪除Entity 13 脫離/附合(Detach/Merge) 145. JPA Query 14 Query接口 15 簡(jiǎn)單查詢 15 使用參數(shù)查詢 16 排序(order by) 16 查詢部分屬性 17 查詢中使用構(gòu)造器(Constructor) 17 聚合查詢(Aggregation) 18 關(guān)聯(lián)(join) 19 20 批量更新(Batch Update) 21(Batch Remove) 21 1. 發(fā)展中的持久化技術(shù) JDBC很多企業(yè)應(yīng)用的開發(fā)者選擇使用 JDBC 管理關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)。JDBC支持處理大量的數(shù)據(jù),能夠保證數(shù)據(jù)的一致性,支持信息的并發(fā)訪問,提供 SQL 查詢語言查找數(shù)據(jù)。JDBC 所使用的關(guān)系模型不是為保存對(duì)象而設(shè)計(jì)的,因此迫使開發(fā)者選擇在處理持久數(shù)據(jù)時(shí)放棄面向?qū)ο缶幊蹋蛘咦约喝ラ_發(fā)將面向?qū)ο筇匦裕ū热纾侯愔g的繼承)和關(guān)系型數(shù)據(jù)庫進(jìn)行映射的專有解決方案。 關(guān)系對(duì)象映射(Object Relational Mapping,ORM)ORM 是目前完成對(duì)象和關(guān)系數(shù)據(jù)表之間的映射最好的一種技術(shù), 這些 ORM 框架處理對(duì)象和關(guān)系數(shù)據(jù)庫之間的協(xié)調(diào)工作,將開發(fā)者從這部分工作中解脫出來,集中精力處理對(duì)象模型。阻礙 ORM 發(fā)展的問題是,現(xiàn)有的每一種 ORM 產(chǎn)品都有自己特有的 API,開發(fā)者只能將自己的代碼綁定到某一個(gè)框架提供商的接口上,這種狀況形成了廠商鎖定,意味著一旦該框架提供商無法解決系統(tǒng)中出現(xiàn)的嚴(yán)重錯(cuò)誤,或者因?yàn)槠渌脑蜣D(zhuǎn)而采用其它的框架,將會(huì)給開發(fā)者的企業(yè)應(yīng)用帶來極大的困難,唯一的解決辦法是重寫所有的持久化代碼。 Java 數(shù)據(jù)對(duì)象(Java Data Object,JDO)JDO 是 Java EE 標(biāo)準(zhǔn)中另外一個(gè)支持管理持久化數(shù)據(jù)的規(guī)范,JDO 規(guī)范使用和 JPA 非常類似的 API,只是通常是通過 JCA 技術(shù)集成到應(yīng)用服務(wù)器上。但是 JDO 是針對(duì)輕量級(jí)容器而設(shè)計(jì)的,不能夠支持容器級(jí)別的聲明式安全、事務(wù)特性,也無法對(duì)遠(yuǎn)程方法調(diào)用提供支持。 Java Persistence API(JPA)EJB 規(guī)范由三部分組成: Simplified API、EJB 核心規(guī)范(EJB Core Contracts and Requirements)和 JPA(Java Persistence API)。JPA 規(guī)范部分詳細(xì)的介紹了 JPA 中實(shí)體 Bean 的定義,并介紹了實(shí)體 Bean 支持的注釋、全新的查詢語言、實(shí)體管理接口、容器實(shí)現(xiàn)規(guī)范等內(nèi)容。JPA 標(biāo)準(zhǔn)制定過程中充分吸收了目前已經(jīng)出現(xiàn)的所有持久化技術(shù)的所有優(yōu)點(diǎn),摒棄了它們存在的局限,使 JPA 在簡(jiǎn)單易用、查詢能力等方面表現(xiàn)突出。標(biāo)準(zhǔn)化JPA 是 JCP 組織發(fā)布的 Java EE 標(biāo)準(zhǔn)之一,因此任何聲稱符合 JPA 標(biāo)準(zhǔn)的框架都遵循同樣的架構(gòu),提供相同的訪問 API,這保證了基于 JPA 開發(fā)的企業(yè)應(yīng)用能夠經(jīng)過少量的修改就能夠在不同的 JPA 框架下運(yùn)行。對(duì)容器級(jí)特性的支持JPA 框架中支持大數(shù)據(jù)集、事務(wù)、并發(fā)等容器級(jí)事務(wù),這使得 JPA 超越了簡(jiǎn)單持久化框架的局限,在企業(yè)應(yīng)用發(fā)揮更大的作用。簡(jiǎn)單易用,集成方便JPA 的主要目標(biāo)之一就是提供更加簡(jiǎn)單的編程模型:在 JPA 框架下創(chuàng)建實(shí)體和創(chuàng)建 Java 類一樣簡(jiǎn)單,沒有任何的約束和限制,只需要使用 進(jìn)行注釋;JPA 的框架和接口也都非常簡(jiǎn)單,沒有太多特別的規(guī)則和設(shè)計(jì)模式的要求,開發(fā)者可以很容易的掌握。JPA 基于非侵入式原則設(shè)計(jì),因此可以很容易的和其它框架或者容器集成。可媲美 JDBC 的查詢能力JPA 定義了獨(dú)特的 JPQL(Java Persistence Query Language),JPQL 是 EJB QL 的一種擴(kuò)展,它是針對(duì)實(shí)體的一種查詢語言,操作對(duì)象是實(shí)體,而不是關(guān)系數(shù)據(jù)庫的表,而且能夠支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能夠提供的高級(jí)查詢特性,甚至還能夠支持子查詢。支持面向?qū)ο蟮母呒?jí)特性JPA 中能夠支持面向?qū)ο蟮母呒?jí)特性,比如類之間的繼承、多態(tài)和類之間的復(fù)雜關(guān)系,這樣的支持能夠讓開發(fā)者最大限度的使用面向?qū)ο蟮哪P驮O(shè)計(jì)企業(yè)應(yīng)用,而不需要自行處理這些特性在關(guān)系數(shù)據(jù)庫的持久化。支持內(nèi)容:JDBCORMJDOEJB 3(JPA)Java 對(duì)象NoYesYesYes高級(jí)OO原理NoYesYesYes事務(wù)完整性YesYesYesYes并發(fā)YesYesYesYes大數(shù)據(jù)集YesYesYesYes現(xiàn)有 SchemaYesYesYesYes關(guān)系型和非關(guān)系型數(shù)據(jù)存儲(chǔ)NoNoYesNo查詢YesYesYesYes嚴(yán)格的標(biāo)準(zhǔn)/可移植NoNoYesYes簡(jiǎn)單易用YesYesYesYes表 1 持久化技術(shù)的優(yōu)缺點(diǎn)2. JPA 體系架構(gòu)JPA 中定義一套類和接口用于實(shí)現(xiàn)持久化管理和對(duì)象/關(guān)系的映射,下面這張圖中顯示了 JPA 的主要組件以及它們之間的相互關(guān)系。圖1 JPA 主要組件和相互關(guān)系 EntityManagerFactory EntityManagerFactory 是 EntityManager 的工廠類,負(fù)責(zé)創(chuàng)建 EntityManager 對(duì)象。 EntityManager EntityManager 是 JPA 應(yīng)用中使用的基本對(duì)象,通過它提供的相應(yīng)方法可以管理持久化對(duì)象,也可以新建或者刪除持久化對(duì)象。EntityManager 還負(fù)責(zé)創(chuàng)建 Query 實(shí)例。在容器外使用時(shí),EntityManagerFactory 和 EntityManager 之間是一對(duì)一的關(guān)系。 Entity EntityTransaction 提供 Entity 操作時(shí)需要的事務(wù)管理,和 EntityManager 是一對(duì)一的關(guān)系。在查詢操作時(shí)不需要使用 EntityTransaction,而在對(duì)象持久化、狀態(tài)更新、對(duì)象刪除等情況下則必須使用顯式的使用 EntityTransaction 的相關(guān)方法管理事務(wù)。 Query Query 是查詢實(shí)體的接口,Query 對(duì)象可以從 EntityManager 中獲得。根據(jù) EJB 規(guī)范中的描述,Query 接口需要同時(shí)支持 JPQL 和原生態(tài) SQL 兩種語法。 Persistence Persistence 是一個(gè)工具類,負(fù)責(zé)根據(jù)配置文件提供的參數(shù)創(chuàng)建 EntityManagerFactory 對(duì)象。下面的代碼演示了如何通過 JPA 提供的接口和 JPQL 查詢語言完成實(shí)體查詢和更新的例子,例子中的代碼假定運(yùn)行在非 Java EE 環(huán)境中。清單 1 在非 Java EE 環(huán)境使用 JPA 接口的例子EntityManagerFactory factory = (“mysql”)。 // 從 EntityManagerFactory 實(shí)例 factory 中獲取 EntityManagerEntityManager em = ()。// 實(shí)體的更新需要在事務(wù)中運(yùn)行EntityTransaction tx = ()。 ()。 // 查找所有公司中的女性雇員Query query = (select e from Employee e where = 39。f39。)。List results = ()。 // 給所有女性雇員增加半天假期for (Object res : results){ Employee emp = (Employee) res。 ( () +)。} // 提交事務(wù)(持久化所有更新) ()。 ()。 ()。下面的代碼顯示了在 EJB 容器中開發(fā) JPA 應(yīng)用時(shí)的接口使用情況,由于容器中的 EntityManager 是注入的,事務(wù)也是聲明式的,因此在容器中完成上面的業(yè)務(wù)邏輯要簡(jiǎn)單得多。清單 2 在容器中運(yùn)行的 JPA 例子/** 在容器中運(yùn)行 JPA 應(yīng)用時(shí),EntityManager 接口的實(shí)例”em”* 是通過 @Resource 注釋注入的。事務(wù)也通常是聲明式的。
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1