1. 程式人生 > >Atitit  Persistence API永續性標準化法總結 目錄 1. 永續性對於大多數企業應用程式都非常要害 1 2. 持久化api內容 2 2.1. 一種宣告式地執行O-R對映的方式。 2

Atitit  Persistence API永續性標準化法總結 目錄 1. 永續性對於大多數企業應用程式都非常要害 1 2. 持久化api內容 2 2.1. 一種宣告式地執行O-R對映的方式。 2

Atitit  Persistence API永續性標準化法總結

目錄

  1. 永續性對於大多數企業應用程式都非常要害

,因為它們需要訪問關係資料庫(例如Oracle Database 10g)。假如您正在使用java開發應用程式,您可能需要完成一些常規任務(例如資料庫更新和檢索),這是通過編寫JDBC和SQL來完成的。最近幾年,幾種物件關係(O-R)對映框架(例如Oracle TopLink、JBoss Hibernate和BEA Kodo)開始流行,因為它們簡化了永續性問題,將Java開發人員從編寫JDBC程式碼的工作中解放出來,從而使他們能夠將精力集中於業務邏輯

  1. 持久化api內容

假如使用過O-R對映框架(例如Oracle TopLink)構建應用程式持久層,您就會注重到,每種框架都提供三種工具:

    1. 一種宣告式地執行O-R對映的方式。

這種方法(稱為O-R對映元資料)答應將物件對映到一個或多個數據庫表。通常,大多數O-R框架使用xml儲存O-R對映元資料。

    1. 一個用於操作實體(例如,執行CRUD操作)的API。

此API答應持久化、檢索、更新或移除物件。基於API和O-R對映元資料的使用,O-R框架代表開發人員執行資料庫操作。此API將開發人員從編寫JDBC或SQL程式碼以持久化域物件的工作中解放出來。

    1. 一種用於檢索物件的查詢語言。這是永續性最重要的方面,

因為非法的SQL語句可能會降低資料庫的速度。此方法也對應用程式遮蔽了混亂地遍佈應用程式的的專有SQL。查詢語言答應檢索實體或物件,並將開發人員從編寫SQL SELECT語句的工作中解放出來。

  1. Java Persistence API (JPA)

提供一種標準O-R對映機制、一個執行CRUD操作的EntityManager API以及一種擴充套件EJB-QL以檢索實體的方式,從而標準化了面向Java平臺的永續性的使用。我將在後面討論這三個方面。

    1. Java Caching(快取)-策略和JCache API - CSDN部落格.html.txt

JCache API 從設計的角度看,基本組成部分有一個CacheManager,用來持有、控制快取集合。快取裡存放鍵值對條目。

整個規範包括瞭如下內容:

  • 支援原子操作的快取讀寫
  • 快取事件監聽器
  • 統計
  • 事務
  • 註解

Cache技術在Java的生態環境中太太太常見了。常見的快取技術如Ehcache, Hazelcast, Infinispan, GridGain, Apache Ignite, JCS…等等,以上技術在很多的系統優化解決方案中我們都見到過。最最簡單的快取技術就是將資料快取在記憶體區塊中,附加一些規則(如先進先出等)。而先進的快取則可以是分散式的,跨越多臺JVM、磁碟,用來操作大資料(當今流行話題之一)。 大多數快取的解決方案是將資料儲存在類似map的結構中(key-value),正因為如此,JCache API規範的標準也是基於map(類似)的結構。如果你需要高階點的用法,那到可以自己實現一些高階特徵,例如JPA,但是這個規範的主要目的是希望資料在各個快取技術之間更好的互動,以及應該在Cache方面需要升級轉換到另一個技術時更加的容易,終級目的是減少開發人員的程式碼量。 

  • CachingProvider: 定義了建立、配置、獲取以及控制一個或多個CacheManager的方法。程式在執行過程中可以使用一個或多個CacheProvider。
  • CacheManager: 定義了建立、配置、獲取以及控制一個或多個Cache。一個CacheManager從屬於一個CachingProvider。
  • Cache<K, V>: 類似Map的資料結構,用來暫存資料。一個Cache從屬於一個CacheManager。
  • Entry<K, V>: key-value結構的單一元素,儲存在Cache裡。
  • ExpiryPolicy: 一個儲存在Cache中的Entry,都有儲存的規則,像:會不會過期?怎麼過期?這些規則統稱為ExpirePolicy。

3.2  儲存方式有兩種: 

  • 按value存(預設):當一個物件要被存到Cache裡時,會拷貝後再放到Cache,讀取Cache時返回的也是拷貝後的值。
  • 按Reference存:當一個物件要被存放到Cache裡時,就直接按key存放了相應的值,並不會進行拷貝。這樣的後果是當程式裡的值改變後,相應存放在Cache裡的值也會改變(不需要呼叫cache.put())。

3.3  一致性(Consistency) Cache一致性是指當多個程序同時訪問或操作同一個Cache時應該有的規則。所有的實現類都應該遵循JCache的預設規則(如下): 即Cache在操作時考慮在key上加鎖。即讀取Cache時,這時候就需要寫一個lock方法鎖住該key,在這個時候其它所有的操作都會被阻塞直到該鎖被釋放。加鎖行為應該是在讀操作的之前,或是在值會發生變化之前,包括在不同的JVM之間的操作。 對某些Cache的操作來說,從Cache返回的值是“最後”的那個值。這個最後的值可能是一個“老的”資料,也可能是“新的”資料,尤其是在當一個元素同時被更新時,實現類需要考慮哪個值需要被返回。 不同於以上的,其它的操作遵循的規則可能是當且僅當元素當前的狀態剛好是希望的狀態時,Cache值才會發生變化。在這種情況下多個執行緒同時操作(或更新)該Cache也是沒有影響的,比如共享同一個鎖。 4.  Cache<K, V>與Map區別 雖說Cache的儲存資料結構與Map類似(更精確的說,應該是JCache裡的Cache物件像java.util.ConncurentHashMap.),操作的API也很相似(get, put, remove等),但不同點也顯而易見。 a. Cache不允許null的key或value,遇到該case時會報NPE。(從業務角度來來說,存空的鍵或值沒有意義。對於map來說要看其具體的實現類,比如HashMap就允許空的鍵和值,Hashtable不允許空的鍵和值。) b. Cache裡的值可能會過期或收回。 c. 為了支援compare-and-swap(一種無鎖演算法),即比較元素的值是否發生變化,若值是一個自定義的類,那麼在Cache裡要重寫方法Object#equals。(這是推薦的做法,並不是必須)。 d. 在Cache裡,key和value在某些情況下需要實現序列化(可以進行二進位制儲存、傳輸到Cache server等)。 e. 在Cache裡可能會被定義有多少的key或value可以被儲存下來。 f. Cache提供安全方法的介面。 總的來說,Cache和Map是兩個完全不同的東西。沒啥可比性,運用場景也差很多。只能說In memery的Cache,有點類似儲存在JVM裡的本地Map。然後Cache的功能遠不止這些,如今的發展已經是跨JVM了,形式也不僅僅是儲存在記憶體中。 

我們可能對JSR-107F規範並不熟悉,但相信很多開發者都用過Cache技術,比如Ehcache, Hazelcast等等。JCache的主要作用就是定義及規範了SPI,比如過期規則、元素失效規則(LRU, FIFO等),對開發者而言正是因為這些SPI的出現,使得我們在選擇具體的Cache技術時可以更好的進行切換以及降低了學習成本。存在即合理,多數Cache技術都已經支援並實現了JCache,是個好東西。 

    1. 檔案持久化apiAtitit 檔案儲存標準化api 總結 目錄

Atitit title 頭銜  頭街  稱號 v22

作者簡介

艾提拉  艾龍 attilax,法名 st attilax akbar rinpoche 聖阿提拉科斯阿克巴仁波切

頭街軟體技術大師 uke組織創始人

學術成就,完善的20大知識體系,擁有uke學院碩士博士學位

從事軟體網際網路行業技術背景十二年,csdn排名TOP57

長年從事軟體網際網路技術與管理,預計出版多本心得分享書籍

擅長技術與管理與文化 致力於標準化事業

Qq 1466519819  小號112237553

 微信attilax  小號attilax201708

作者:: 綽號與頭街 :老哇的爪子claw of Eagle 偶像破壞者Iconoclast image-smasher   神的使者(Messenger of God)及守望者(Watch Man

捕鳥王"Bird Catcher  kok  虔誠者Pious 宗教信仰捍衛者 Defender Of the Faith. 卡拉卡拉紅斗篷 Caracalla red cloak KOA萬獸之王  縱火者

頭街來源:神的使者(Messenger of God)及守望者(Watch Man來源於聖經

老哇的爪子claw of Eagle來源於印加帝國

KOA萬獸之王 來源於婆羅門大神森林中修煉

簡稱:: st Emir Attilax Akbar 聖 埃米爾 阿提拉克斯 阿克巴

全名::st Emir Attilax Akbar bin Mahmud bin  attila bin Solomon bin adam Al Rapanui 聖 埃米爾 阿提拉克斯 阿克巴 本 馬哈茂德 本 阿提拉 本 所羅門 本亞當  阿爾 拉帕努伊

常用名:艾提拉(艾龍),  EMAIL:[email protected]

頭銜:

uke

 Emir Uke部落首席大酋長,ati協會創始人  仁波切馬斯塔 埃米爾

uke總部o2o負責人,全球網格化專案創始人,

聖阿提拉克斯國王

科技領域

UTSC uke技術標準化委員會委員長 uke 首席cto   軟體部門總監 技術部副總監  研發部門總監主管  產品部副經理 專案部副經理   uke科技研究院院長 uke軟體培訓大師

Ati組織科研研究院創始人

文藝領域

,  ,, uke機車協會主任 uke紋身協會

uke交友協會會長  uke捕獵協會會長

Ati文藝協會會長  ati文學協會

行政領域

Gchsp總裁  gchsp常委  GsP創始人

媒體傳播領域

   uke出版社編輯總編  宣傳佈道總策劃

Ati傳媒總部

漁獵軍事領域

uke保安部首席大隊長

Uke 戶外運動協會理事長  度假村首席大村長

Ati打獵協會

法學

法學研究會 制度研究會

管理領域

工商管理學 公共管理與社會服務

,uke制度檢查委員會副會長

教育領域

 uec學院校長, uecip影象處理機器視覺專業系主任   uke文件檢索專業系主任

Uke影象處理與機器視覺學院首席院長

uke終身教育學校副校長

靚號研究院

經濟領域

uke波利尼西亞區大區連鎖負責人 湯加王國區域負責人 uke克爾格倫群島區連鎖負責人,萊恩群島區連鎖負責人,uke布維島和南喬治亞和南桑威奇群島大區連鎖負責人

 Uke軟體標準化協會理事長理事長 Uke 資料庫與儲存標準化協會副會長

直達巴士西北區負責人   直達巴士長沙與西安分部部長

潤昌通訊軟體事業部總裁 執行長 分部負責人  執行委員會主席

Ati經濟研究所

歷史領域

歷史事業部  ati歷史研究院

社會科學領域

社科學院  ati文化部

自然科學領域

Uke研究院院長兼首席研究員 科學家

Ati自然科學研究院

宗教神學領域

uke宗教與文化融合事務部部長  大師master

uke制度與重大會議委員會委員長    ati宗教事務所

醫學領域

   Uke醫院 與醫學院方面的創始人

Microblog

知乎空間

https://www.zhihu.com/people/ati-att/activities

Qq 1466519819  小號112237553

 微信attilax  小號attilax201708

微博 attilax2016   小號attilax201707

--Atiend  v22

修改歷史記錄

V22增加艾提拉  和頭街馬斯塔

V21 增加神的使者頭街 守望者

在舊約中,“神人”(Man of God),神的使者Messenger of God)及守望者(Watch Man),也是指先知。他們是負有上帝特殊使命的人,同時又是關心世人靈性問題的人

V20 增加了7行的作者簡介

V18增加了GsP 頭街  v19增加了聖字頭街與  聖阿提拉克斯王國國王頭街

V17 增加了ati組織的頭街

V16 結構化表格化頭街 ,並且 頭街增加一些。充實了空虛。

V15 增加了知乎空間  微博大小號

V14  增加小號,以及通訊公司與直達巴士分部

V12 增加機構utsc

V10 增加了microblog

萬獸之王本來這個是溼婆的。。

V7  增加了研究院title

V8 去了奶牛科技的東東

V9 融和倆個v8版本。。

增加了cnblogs的url