999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

JPA在數(shù)據(jù)持久化層的應(yīng)用與原理探析

2019-06-17 01:25:15溫立輝
科技資訊 2019年6期

溫立輝

摘? 要:針對Java EE編程中的JPA持久化問題,討論了JPA的適用場景,闡述JPA規(guī)范的應(yīng)用原理;在論述中詳細(xì)分析了JPA持久化過程中的4種不同數(shù)據(jù)實體狀態(tài),以及不同實體狀態(tài)的轉(zhuǎn)化條件及相關(guān)的API操作接口;同時也分析了數(shù)據(jù)實體間的關(guān)聯(lián)關(guān)系,以及不同關(guān)聯(lián)關(guān)系在JPA持久化ORM技術(shù)中配置實現(xiàn),最后說明了JPQL語句的原生SQL語句的區(qū)別以及其在Java EE領(lǐng)域的重要作用。

關(guān)鍵詞:JPA? JPQL? 持久化規(guī)范? ORM

中圖分類號:TP311.52? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標(biāo)識碼:A? ? ? ? ? ? ? ? ? ? ? ? 文章編號:1672-3791(2019)02(c)-0005-02

JPA即Java 持久化API(Java Persistence API),是Java EE5后提出的的一個持久化規(guī)范,此規(guī)范參照了EJB3的 Entity Bean(實體Bean)實現(xiàn)過程,其使用JPQL語句來對表實體進行CRUD的操作,在Java語言企業(yè)級編程存在著非常廣泛的應(yīng)用。

1? JPA概述

JPA作為一個持久化規(guī)范,其專門負(fù)責(zé)定義與數(shù)據(jù)存儲層的交互標(biāo)準(zhǔn),定義交互過程,其作為規(guī)范,只定義了上層接口,并不負(fù)責(zé)具體的實現(xiàn)過程,實際上在開發(fā)市場中,JPA有眾多的實現(xiàn)方式,如Hibernate、TopLink、OpenJPA等持久化框架。

JPA作為一套數(shù)據(jù)持久化的規(guī)范,其思想對ORM編程繼承與細(xì)化,在Java編程中由于面向?qū)ο缶幊趟枷肱c關(guān)系型數(shù)據(jù)庫的思維差別,致使應(yīng)用程序與關(guān)系數(shù)據(jù)庫存在一定的交互障礙,ORM作為面向?qū)ο蟮膽?yīng)用程序與關(guān)系型數(shù)據(jù)庫間的交互中介橋梁,解決了開發(fā)中編碼問題,使用開發(fā)人員能用使用面向?qū)ο蟮乃季S去處理和操作關(guān)系庫。

2? JPA狀態(tài)表述

在JPA規(guī)范中,實體狀態(tài)的變化都是通過EntityManager接口下的相關(guān)函數(shù)的被調(diào)用而觸發(fā)的,一個實體從對象變成數(shù)據(jù)庫表中的一條記錄,一共可經(jīng)歷4個狀態(tài),分別是:新建狀態(tài)(New)、游離狀態(tài)(Detached)、受控狀態(tài)(Managed)、刪除狀態(tài)(Removed)。

新建狀態(tài):當(dāng)一個實體對象剛剛通過new創(chuàng)建出來,還未和其他持久化機制發(fā)生任何關(guān)聯(lián),這時這個實體的實例處于新建狀態(tài)。

游離狀態(tài):當(dāng)實體對象已經(jīng)從持久化機制中得到唯一主鍵,但實例未與持久化機制發(fā)生關(guān)聯(lián)關(guān)系,則此時對象處于游離狀態(tài),當(dāng)通過EntityManager接口調(diào)用clear()方法,實例對象進入游離狀態(tài)。

受控狀態(tài):實體對象已經(jīng)從持久化機制中得到唯一主鍵,且已經(jīng)與持久化機制發(fā)生關(guān)聯(lián)關(guān)系,則對象處于受控狀態(tài),當(dāng)通過EntityManager接口調(diào)用persist()方法,實例對象進入游離狀態(tài)。

刪除狀態(tài):如果一個實體對象滿足受控的基本要求,即處于受控狀態(tài),此時將對象刪除,則對象進入刪除狀態(tài),當(dāng)通過EntityManager接口調(diào)用remove()方法,實例對象到達(dá)刪除狀態(tài)。

3? JPA關(guān)系實體表述

JPA作為持久化的操作規(guī)范,其對應(yīng)用程序中實體間的關(guān)系作了明確的定義,共分三大類型,分別是:一對一(one to one)、一對多(one to many)、多對多(many to many),接下來以Hibernate框架的JPA實現(xiàn)為載體來進行各種實體關(guān)系的分析。

一對一:就是兩個實體間,一方實體的任一實例只能對應(yīng)于另一方實體唯一的實例。在日常生活中,例如個人與身份證號碼的關(guān)系,每個人都有唯一的一個身份證號碼,同時每個身份證號碼都只能屬于某一個人。

具體實現(xiàn)需要在每個實體中引入對方實體作為本類的一個全局屬性。如需要在用戶(Person)類中引入對方:private Idcard idcard;同時需要在身份證(Idcard)類引對方:private Person person。還要在XML文件做相應(yīng)的設(shè)置,在Person實體的映射文件中加入:;在Idcard實體的映射文件中加入:

一對多:就是兩個實體之間,一方實體的一個實例可以在另一實體中找到若干個與之對應(yīng)的實例,但另一方實體的一個實例卻只能對應(yīng)對方實體的一個實例。例如,在一個家庭中一對父母親可以生育多個子女,但每個子女卻都只能有一對父母親。

在具體實現(xiàn)中,需要在代表一方的父母實體 (Father) 類中引入一個Set集合屬性:private Set sons = new HashSet(0),作為與多方的關(guān)聯(lián)屬性;同時需要在代表多方的子女實體 (Son) 類中引入一個Father類型屬性:private Father father。最后需要在Father實體映射文件中配置:;并在Son實體映射文件中配置:。

主站蜘蛛池模板: 又黄又湿又爽的视频| 综1合AV在线播放| 91精品专区| 亚洲熟女偷拍| 少妇人妻无码首页| 无码AV日韩一二三区| 中文国产成人精品久久| 精品人妻一区无码视频| 国产成人精品一区二区三在线观看| 欧美一区二区三区国产精品| 中文字幕亚洲乱码熟女1区2区| 国产精品微拍| 亚洲水蜜桃久久综合网站| 亚洲第一黄色网| 亚洲综合天堂网| 美女被狂躁www在线观看| 四虎成人免费毛片| 欧美日韩免费| 色婷婷成人网| 在线观看网站国产| 成人福利在线视频免费观看| 99无码熟妇丰满人妻啪啪| 国产拍在线| 国产成人精品综合| 国产欧美日韩视频一区二区三区| 亚洲精品综合一二三区在线| 91网在线| 欧美日韩国产系列在线观看| 亚洲狠狠婷婷综合久久久久| 美女无遮挡被啪啪到高潮免费| 91无码视频在线观看| 亚洲视频三级| 中文字幕 欧美日韩| a毛片在线免费观看| 久久免费成人| 欧美激情第一欧美在线| 中文字幕无码制服中字| 片在线无码观看| 日韩小视频在线观看| 毛片网站在线看| 欧美色综合网站| 在线精品亚洲国产| 日本五区在线不卡精品| 色欲色欲久久综合网| 伊人AV天堂| 国产精品蜜芽在线观看| 天天综合天天综合| 色婷婷电影网| 亚洲天堂网在线观看视频| 欧美97色| 中文字幕丝袜一区二区| 午夜不卡福利| 67194亚洲无码| 日本国产精品一区久久久| 国产资源免费观看| 91无码网站| AV不卡在线永久免费观看| 中文字幕2区| 亚洲欧美极品| 亚洲床戏一区| 在线国产欧美| 青草视频网站在线观看| 国产精品自在线拍国产电影 | 91精品国产丝袜| 波多野结衣中文字幕一区| 五月婷婷激情四射| A级毛片无码久久精品免费| 久久黄色视频影| 丁香五月激情图片| 91精品国产一区| 人妻少妇久久久久久97人妻| 啪啪免费视频一区二区| 亚洲一区二区约美女探花| 成人中文字幕在线| 国产v精品成人免费视频71pao| 四虎精品免费久久| 在线观看国产网址你懂的| 国产日本欧美亚洲精品视| 国产亚洲精品资源在线26u| 日本精品αv中文字幕| 日韩AV手机在线观看蜜芽| 国产第一色|