基于ECO的UML模型驱动的数据库应用开发三OCL查询语言作者.PDFVIP

基于ECO的UML模型驱动的数据库应用开发三OCL查询语言作者.PDF

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于ECO的UML模型驱动的数据库应用开发三OCL查询语言作者

基于 ECO 的UML 模型驱动的数据库应用开发(三) OCL 查询语言 作者:陈省 OCL 查询语言介绍 在传统的企业应用的开发是以数据集为核心来进行的,数据集中的数据获取和操作都是 通过标准的 SQL 语言来实现的,比如在.Net 中,通常是通过设定 SqlCommand 等组件的 CommandText 属性为相应的 Sql 来实现的。但是回顾一下使用 Eco 开发账本程序的过程, 你会发现Eco 的数据源组件如ExpressionHandle ,不是通过Sql 语句而是通过设定Expression 属性为Person.allInstanc es 等Ocl 语句来完成的。 OCL 查询语言是Object Constraints Language 的英文缩写,它最早是由IBM 公司提出的 UML 规范的一个子规范,用来描述对象的约束和相互之间的关联关系,该规范同 UML 标 准一样由OMG(Object Modeling Group)组织负责制定和维护。之所以需要OCL 查询语言是 因为标准的UML 模型对模型特性的描述主要是通过自然语言进行描述的,自然语言的特点 就是存在着二义性,这在系统设计的时候还不是太大的问题,但要将UML 模型转化为真实 运行的程序,则要求消除这种模型表述的不确定性。而OCL 语言则可以精确的描述模型的 约束条件以及相互之间的关系,非常适合于模型驱动的开发。下面是OCL 查询语言同标准 的SQL 的语言之间的对比: OCL 查询语言 SQL 查询语言 面向对象的查询语言,“面向对象的 SQL”, 面向静态数据集的查询语言,非面向对象的, 强类型的查询语言 弱类型的查询 由OMG 制定的统一标准 有统一的 ANSI 标准,但大多数厂商对标准 进行了扩展,导致事实上的标准不统一 数据库平台无关 数据库平台相关,不同平台的SQL 语言用法 不同 只能对数据进行查询 除了查询,可以通过Insert ,Update , Delete 对数据进行修改 基于对象属性的过滤 同Sql 语言类似,Ocl 语言最大的用途主要是用于根据对象属性查询满足约束条件的对 象来。当前账本管理系统中主要有两类对象Person 和AcctItem ,我们可能经常会需要查看 满足特定条件的人员信息或者满足特定条件的账目信息,接下来我们就看看如何使用 Ocl 实现数据查询。 首先在界面上增加两个按钮,分别用于 “过滤人员”和 “过滤账目”。在前面编辑 ExpressionHandle 组件的Expression 属性时,Eco 提供了一个方便的可以实现AutoComplete 输入Ocl 属性编辑器,而这个设计时的Ocl 属性编辑器是调用Eco 框架Borland.Eco.Handles 名字空间中的 OclEditor 这个类来实现的,这个 OclEditor 类在运行时也能正确运行,因此 Ocl 语言的编辑设定功能只要简单的调用OclEditor 的静态方法ShowEditor 就可以了,这个 方法需要的参数是IHasEditableExpression 接口,而ExpressionHandle 组件实现了这个接口, 代码示意如下: private void btnFilterPerson_Click(object sender, System.EventArgs e) { //显示人员Ocl 查询编辑器 OclEditor.ShowEditor(ehPerson); } private void btnFilterAcct_Click1(object sender, System.EventArgs e) {

您可能关注的文档

文档评论(0)

laolao123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档