Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)_第1頁
Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)_第2頁
Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)_第3頁
Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)_第4頁
Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)2023/5/26Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)OOP前言1什么是Caché的面向?qū)ο?Caché的類定義3Caché的面向?qū)ο缶幊?:8972/csp/docbook/DocBook.UI.Page.clsCachéDevelopmentGuides->UsingCachéObjectsCaché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)OOP前言1什么是Caché的面向?qū)ο?Caché的類定義3Caché的面向?qū)ο缶幊?Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)OOP的基本特征封裝繼承(泛化、聚合)多態(tài)(覆蓋、重載)Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)OOP前言1什么是Caché的面向?qū)ο?Caché的類定義3Caché的面向?qū)ο缶幊?Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)Caché對象的特點一個強大的對象模型包括繼承,屬性,方法,集合,關系,用戶定義的數(shù)據(jù)類型和流。一個靈活的對象持久化機制控制數(shù)據(jù)庫的持久化類的各個方面包括索引,約束和指向完整性。一個易于使用的事務和并發(fā)模型自動集成與Cache緩存的SQL通過統(tǒng)一數(shù)據(jù)架構。與Java、C++、ActiveX的交互性。自動提供XML支持。一個強大的協(xié)同開發(fā)環(huán)境:Studio。Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)Caché對象包括以下主要內(nèi)容ClassDictionary:類定義,描述了每個特定的類庫ClassCompiler:一組程序,將類定義轉(zhuǎn)換成可執(zhí)行代碼ObjectRuntimeSystem:支持對象運行時操作CachéClassLibrary:一組Caché安裝時預先建立的類LanguageBindings:與各開發(fā)語言的綁定,ProjectionGateways:外部系統(tǒng)通過網(wǎng)關訪問Caché對象Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)面向?qū)ο蟮臄?shù)據(jù)庫開發(fā)類和對象抽象與建模繼承和多態(tài)封裝可擴展性對象持久對象綁定Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)Caché對象模型支持以下功能Persistence:持久性對象可以被存儲在Caché數(shù)據(jù)庫或外部數(shù)據(jù)庫。同時解析存儲對象為關系表,可以使用標準的SQL查詢Properties:屬性簡單值、對象、嵌入對象、對象引用、數(shù)組、集合、流CustomDataTypes:自定義數(shù)據(jù)類型可以使用應用程序自定義的數(shù)據(jù)類型Methods:方法類方法、實例方法Polymorphism:多態(tài)Inheritance:繼承Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)Object的:OREF、OID和IDOREF一個對象引用,是一個值setobj=##class(test.Person).%New()OID一個對象標識符,唯一標識一個持久化對象。setobj=##class(test.Person).%Open(OID)ID一個值,唯一標識一個特定的范圍內(nèi)特定的實例。setobj=##class(test.Person).%OpenId(ID)Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)Caché的ClassTypeTransientObjectClasses臨時類,注冊類,inmemory類型:%RegisteredObjectPersistentObjectClasses持久類,inDB類型:%PersistentSerialObjectClasses序列化類,inmemory,orembeddedwithinapersistentobject%SerialObjectDataTypeClasses數(shù)據(jù)類型類,依附于某個對象。Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)Caché的ClassTypeCaché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)繼承與多重繼承繼承ClassUser.MyClassExtends%Persistent[ClassType=persistent]{}注意:對ClassType的要求,

在不同版本之間有差異多重繼承ClassXExtends(A,B,C){}屬性:所有父類的集合優(yōu)先級:后面的超類的屬性覆蓋前面的超類屬性關鍵字:來源于第一個超類Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)OOP前言1什么是Caché的面向?qū)ο?Caché的類定義3Caché的面向?qū)ο缶幊?Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)Caché的類成員ClassName:唯一類名,包括所屬包。Property:屬性,類實例的數(shù)據(jù)集合。Method:類方法和實例方法。Query:查詢,輸出數(shù)據(jù)集。Index:索引的存儲結(jié)構,用于優(yōu)化頻繁訪問數(shù)據(jù)模式。ClassKeywords:類關鍵詞,指定整體類的行為。ClassParameters:類參數(shù),自定義類通常需要使用的值。Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)PropertyKeywordsCalculatedDescriptionFinalInitialExpressionPrivateRequiredTransientTypeAccessorsGet:writeobj.PropertyGet()Set:doobj.PropertySet(val)AttributeDataTypePropertiesObject-ValuedPropertiesCollectionPropertiesStreamPropertiesMultidimensionalpropertiesCaché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)MethodArgumentsDefaultValuesByReferenceCallReturnValuesLanguageKeywordsClassMethodFinalSQLProcCaché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)QueryDefinethequeryNewQueryWizardSQLQuery&User-WrittenQuery4partsofUser-WrittenQueryKeyWordsSQLProcSqlNameInvokethequerydo##class(%ResultSet).RunQuery("className","queryName",arg,...)DynamicSQLCaché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)Storage%CacheStorage持久對象的默認存儲模式,可以自動創(chuàng)建CacheStorage的關鍵點DataNodesDataLocationIdLocationIndexNodesIndexLocationStreamLocation%CacheSQLStorage一種特殊的存儲類,通常用于映射老結(jié)構的global過SQLGateway存儲外部關系數(shù)據(jù)庫的結(jié)構Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)Index索引的特點索引為持久化類提供一個優(yōu)化的實例檢索機制定義一個特定的排序與一類相關的常用請求的數(shù)據(jù)子集索引可以定義為一個或多個屬性的排序排序規(guī)則EXACTSQLSTRINGSQLUPPERALPHAUPMINUSPLUSSPACESTRINGUPPERCaché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)RelationShipRelationShip的特點只有持久類能定義RelationShipRelationShip是雙向的,在兩個類中都要定義兩種類型:1-n;父子自動保證數(shù)據(jù)完整性RelationShip解析為關系表中的外鍵父子關系的定義定義方法存儲Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)OOP前言1什么是Caché的面向?qū)ο?Caché的類定義3Caché的面向?qū)ο缶幊?Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)使用Caché對象-1ExcuteMethodDooref.MethodName(arglist)Setvalue=oref.MethodName(arglist)ExcuteClassMethodDo##class(Classname).MethodName(arglist)Setvalue=##class(Classname).MethodName(arglist)NewObject:Setoref=##class(Classname).%New()OpenObjectSetoref=##class(Classname).%OpenId(id)Setoref=##class(Classname).%Open(oid)GetPropertySetvalue=oref.PropertyNameSetvalue=oref.PropertyName.GetAt(n)//ListpropertySetvalue=oref.PropertyNameGetAt(key)//ArraypropertyCaché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)使用Caché對象-2ModifyPropertiesSetoref.PropertyName=value//Setcar.Owner=personSetoref.PropertyName.RefPropertyName=valueModifyListPropertiesDooref.PropertyName.Insert(data)//Doperson.FavoriteColors.Insert("yellow")Dooref.PropertyName.SetAt(data,n)//Doperson.FavoriteColors.SetAt("yellow",2)Dooref.PropertyName.InsertAt(data,n)//Doperson.FavoriteColors.InsertAt("yellow",2)Dooref.PropertyName.InsertObject(itemoid)////whenpropertyisListObjectsModfiyingArrayPropertiesDooref.PropertyName.SetAt(data,key)//Dopalette.Colors.SetAt("255,0,0","red")Dooref.PropertyName.SetObjectAt(ElementOid,key)//propertyisArrayofObjectsModifyingStreamPropertiesDooref.PropertyName.Write(data)DeletingObjectsDo##class(Classname).%DeleteId(id)DeletingObjectsRebuildIndexdo##class(Classname).%BuildIndices()Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)使用Caché對象-3SaveObjectDooref.%Save()Setsc=oref.%Save()TStart//...Setsc=oref.%Save()If$$$ISERR(sc){///If($$$ISOK(sc)) TRollBackDo$System.Status.DisplayError(sc)}else{ TCommit Setid=oref.%Id()}Caché開發(fā)培訓課程Caché面向?qū)ο箝_發(fā)課程4練習了解Caché的面向?qū)ο笾R。閱讀UsingCachéObjects

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論