Caché开发培训课程:Caché面向对象开发_第1页
Caché开发培训课程:Caché面向对象开发_第2页
Caché开发培训课程:Caché面向对象开发_第3页
Caché开发培训课程:Caché面向对象开发_第4页
Caché开发培训课程:Caché面向对象开发_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Caché开发培训课程之四

Caché面向对象开发东华软件股份公司医疗事业部第一页,共二十八页。OOP前言1什么是Caché的面向对象2Caché的类定义3Caché的面向对象编程4CachéDevelopmentGuides->UsingCachéObjects第二页,共二十八页。OOP前言1什么是Caché的面向对象2Caché的类定义3Caché的面向对象编程4第三页,共二十八页。OOP的基本特征封装继承(泛化、聚合)多态(覆盖、重载)第四页,共二十八页。OOP前言1什么是Caché的面向对象2Caché的类定义3Caché的面向对象编程4第五页,共二十八页。Caché对象的特点一个强大的对象模型包括继承,属性,方法,集合,关系,用户定义的数据类型和流。一个灵活的对象持久化机制控制数据库的持久化类的各个方面包括索引,约束和指向完整性。一个易于使用的事务和并发模型自动集成与Cache缓存的SQL通过统一数据架构。与Java、C++、ActiveX的交互性。自动提供XML支持。一个强大的协同开发环境:Studio。第六页,共二十八页。Caché对象包括以下主要内容

ClassDictionary:类定义,描述了每个特定的类库

ClassCompiler:一组程序,将类定义转换成可执行代码ObjectRuntimeSystem:支持对象运行时操作CachéClassLibrary:一组Caché安装时预先建立的类LanguageBindings:与各开发语言的绑定,Projection

Gateways:外部系统通过网关访问Caché对象第七页,共二十八页。面向对象的数据库开发类和对象抽象与建模继承和多态封装可扩展性对象持久对象绑定第八页,共二十八页。Caché对象模型支持以下功能Persistence:持久性对象可以被存储在Caché数据库或外部数据库。同时解析存储对象为关系表,可以使用标准的SQL查询Properties:属性简单值、对象、嵌入对象、对象引用、数组、集合、流CustomDataTypes:自定义数据类型可以使用应用程序自定义的数据类型Methods:方法类方法、实例方法Polymorphism:多态Inheritance:继承第九页,共二十八页。Object的:OREF、OID和IDOREF一个对象引用,是一个值setobj=##class(test.Person).%New()OID一个对象标识符,唯一标识一个持久化对象。setobj=##class(test.Person).%Open(OID)ID一个值,唯一标识一个特定的范围内特定的实例。setobj=##class(test.Person).%OpenId(ID)第十页,共二十八页。Caché的ClassTypeTransientObjectClasses临时类,注册类,inmemory类型:%RegisteredObjectPersistentObjectClasses持久类,inDB类型:%PersistentSerialObjectClasses序列化类,inmemory,orembeddedwithinapersistentobject%SerialObjectDataTypeClasses数据类型类,依附于某个对象。第十一页,共二十八页。Caché的ClassType第十二页,共二十八页。继承与多重继承继承ClassUser.MyClassExtends%Persistent[ClassType=persistent]{

}注意:对ClassType的要求,

在不同版本之间有差异多重继承ClassXExtends(A,B,C){

}属性:所有父类的集合优先级:后面的超类的属性覆盖前面的超类属性关键字:来源于第一个超类第十三页,共二十八页。OOP前言1什么是Caché的面向对象2Caché的类定义3Caché的面向对象编程4第十四页,共二十八页。Caché的类成员

ClassName:唯一类名,包括所属包。

Property:属性,类实例的数据集合。

Method:类方法和实例方法。

Query

:查询,输出数据集。

Index:索引的存储结构,用于优化频繁访问数据模式。

ClassKeywords:类关键词,指定整体类的行为。ClassParameters:类参数,自定义类通常需要使用的值。第十五页,共二十八页。PropertyKeywordsCalculatedDescriptionFinalInitialExpressionPrivateRequiredTransientTypeAccessorsGet:writeobj.PropertyGet()Set:doobj.PropertySet(val)AttributeDataTypePropertiesObject-ValuedPropertiesCollectionPropertiesStreamPropertiesMultidimensionalproperties第十六页,共二十八页。MethodArgumentsDefaultValuesByReferenceCallReturnValuesLanguageKeywordsClassMethodFinalSQLProc第十七页,共二十八页。QueryDefinethequeryNewQueryWizardSQLQuery&User-WrittenQuery4partsofUser-WrittenQueryKeyWordsSQLProcSqlNameInvokethequerydo##class(%ResultSet).RunQuery("className","queryName",arg,...)DynamicSQL第十八页,共二十八页。Storage%CacheStorage持久对象的默认存储模式,可以自动创建CacheStorage的关键点DataNodesDataLocationIdLocationIndexNodesIndexLocationStreamLocation%CacheSQLStorage一种特殊的存储类,通常用于映射老结构的global过SQLGateway存储外部关系数据库的结构第十九页,共二十八页。Index索引的特点索引为持久化类提供一个优化的实例检索机制定义一个特定的排序与一类相关的常用请求的数据子集索引可以定义为一个或多个属性的排序排序规则EXACTSQLSTRINGSQLUPPERALPHAUPMINUSPLUSSPACESTRINGUPPER第二十页,共二十八页。RelationShipRelationShip的特点只有持久类能定义RelationShipRelationShip是双向的,在两个类中都要定义两种类型:1-n;父子自动保证数据完整性RelationShip解析为关系表中的外键父子关系的定义定义方法存储第二十一页,共二十八页。OOP前言1什么是Caché的面向对象2Caché的类定义3Caché的面向对象编程4第二十二页,共二十八页。使用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)//Arrayproperty第二十三页,共二十八页。使用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é对象-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()}第二十五页,共二十八页。课程4练习了解Caché的面向对象知识。阅读UsingCachéObjects熟悉持久类的定义属性索引存储结构和索引的global结构method、query用面向对象方式编写代码,实现一个课程管理功能,要求如下:数据课程:代码、课程名、授课教师授课教师:工号、姓名、性别、出生日期学生:学号、姓名、性别、出生日期成绩:学生、课程、成绩功能:实现学生、课程、授课老师的维护,成绩维护(增删改查、事务)命名:test.姓名.ClassName第二十六页,共二十八页。第二十七页,共二十八页。内容总结Caché开发培训课程之四

Caché面向对象开发。ObjectR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论