程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> DODS學習日記(五)

DODS學習日記(五)

編輯:關於JAVA

從5.1final版開始,DO的緩存轉換到DataStruct的緩存中.只有那些原始的DataStructs加入到新的DataStruct緩存中而不是所有的DO,DO只有一個數據(DataStruct對象).所有的轉換是在這個對象上完成的, DataStruct對象包含了每個表的列的值,現在,DO保存了兩個DataStruct引用.

(1) orginalData

(2) data

orginalData保存了原始的數據(從數據庫中讀取),這個數據將不會被修改直到提交,而且如果緩存存在,則該DataStruct對象被加到DataStruce緩存中去.

Data僅僅當數據被修改才會產生(拷貝orginalData),如果第二個DataStruct存在,那麼DO的屬性”isDirty”將被設置為true,即使經過一些修改之後,新的DataStruct保存了根orginalData一樣的值.該DO仍然是髒的,所有沒有辦法讓屬性isDirty由true到false,除非在提交事務的過程中,如果事務被提交,新的DataStruct將會轉移到orginalData.新的

DataStruct將會再次置為空,所有屬性isDirty變為false.

一個新生成的DO(內存中,而不是數據庫中)將只有一個DataStruct對象數據, orginalData中的orginalData數據值在提交之前為空..

oid和version屬性從DO轉移到DataStruct對象.

DataStruct中新添加的屬性有:

isEmpty和databaseName

DataStruct中新添加的方法有:

getOID()

setDatabase(String dbName)

……..

DODS為每張表擁有緩存的可能.可能的緩存類型有:None,LRU.和FULL.

DODS有兩種層次的緩存.

數據緩存級.只有一個LRU緩存,

查詢緩存級,可以有兩個查詢緩存(簡單和復雜類型),這些查詢緩存也是LRU緩存.

緩存的配置:

同上面的類似,也分為三個層次的.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved