Atitit Persistence API永續性標準化法總結 目錄 1. 永續性對於大多數企業應用程式都非常要害 1 2. 持久化api內容 2 2.1. 一種宣告式地執行O-R對映的方式。 2
Atitit Persistence API永續性標準化法總結
目錄
- 永續性對於大多數企業應用程式都非常要害
,因為它們需要訪問關係資料庫(例如Oracle Database 10g)。假如您正在使用java開發應用程式,您可能需要完成一些常規任務(例如資料庫更新和檢索),這是通過編寫JDBC和SQL來完成的。最近幾年,幾種物件關係(O-R)對映框架(例如Oracle TopLink、JBoss Hibernate和BEA Kodo)開始流行,因為它們簡化了永續性問題,將Java開發人員從編寫JDBC程式碼的工作中解放出來,從而使他們能夠將精力集中於業務邏輯
- 持久化api內容
假如使用過O-R對映框架(例如Oracle TopLink)構建應用程式持久層,您就會注重到,每種框架都提供三種工具:
-
- 一種宣告式地執行O-R對映的方式。
這種方法(稱為O-R對映元資料)答應將物件對映到一個或多個數據庫表。通常,大多數O-R框架使用xml儲存O-R對映元資料。
-
- 一個用於操作實體(例如,執行CRUD操作)的API。
此API答應持久化、檢索、更新或移除物件。基於API和O-R對映元資料的使用,O-R框架代表開發人員執行資料庫操作。此API將開發人員從編寫JDBC或SQL程式碼以持久化域物件的工作中解放出來。
-
- 一種用於檢索物件的查詢語言。這是永續性最重要的方面,
- 一種用於檢索物件的查詢語言。這是永續性最重要的方面,
因為非法的SQL語句可能會降低資料庫的速度。此方法也對應用程式遮蔽了混亂地遍佈應用程式的的專有SQL。查詢語言答應檢索實體或物件,並將開發人員從編寫SQL SELECT語句的工作中解放出來。
- Java Persistence API (JPA)
提供一種標準O-R對映機制、一個執行CRUD操作的EntityManager API以及一種擴充套件EJB-QL以檢索實體的方式,從而標準化了面向Java平臺的永續性的使用。我將在後面討論這三個方面。
-
- 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,是個好東西。
-
- 檔案持久化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