`
arfayr
  • 浏览: 24378 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

元数据驱动实例分析

阅读更多

前言:

       以数据库导出为excel文件为例子,分析抽象性思维和元数据定义、解析执行的过程。

问题:

       系统中比较常见各种excel导出的功能要求,如何开发一个通用的excel导出功能?可以适应各种需求?

探索:

       首先需要手动写一个从数据库中导出数据到excel的程序,尽量使用别使用ssh之类。

分析:

       数据导出为excel功能,主要分为两个过程:

<!--[if !supportLists]-->(1)    <!--[endif]-->按照需求从数据库中获取符合需求的数据集;

<!--[if !supportLists]-->(2)    <!--[endif]-->按照要求创建符合需求的excel模板;

<!--[if !supportLists]-->(3)    <!--[endif]-->把数据写入excel,并按照一定规则命名excel文件;

思考:

       列出几个导出excel的实际例子,按照上面分析的流程再次分析,提取出变化和不变的不同部分,不变的部分作为通用的架构,变化的部分用数据定义清楚。可以看出变化的需要定义的内容是:

<!--[if !supportLists]-->(1)    <!--[endif]-->获取数据集的sql语句及要返回的字段列表;

<!--[if !supportLists]-->(2)    <!--[endif]-->Excel模板的字段列表;

<!--[if !supportLists]-->(3)    <!--[endif]-->数据集字段列表和excel模板的字段列表的字段对应关系;

修改导出程序,使得程序能够根据上面定义的内容执行相应的操作,达到导出excel的目的。上面配置的内容可以放到xml文件、文本文件或者数据库中均可;其实这部分数据既可以称为元数据;

思考重点:

<!--[if !supportLists]-->(1)    <!--[endif]-->抽象性思维;

<!--[if !supportLists]-->(2)    <!--[endif]-->分析过程,提取出一切不可控的可能会根据需求变化而变化的部分;

<!--[if !supportLists]-->(3)    <!--[endif]-->变化的内容就是需要配置定义的内容,也就是元数据,元数据的格式即为元模型;

<!--[if !supportLists]-->(4)    <!--[endif]-->修改程序,可以自动解析适应元数据;

<!--[if !supportLists]-->(5)    <!--[endif]-->尽量的考虑各种需求,提高定义的元数据的格式的实用性,提高通用程序的适用性;

后续扩展:

<!--[if !supportLists]-->(1)    <!--[endif]-->考虑支持多种数据库,数据链接信息需要进行配置定义;

<!--[if !supportLists]-->(2)    <!--[endif]-->考虑支持导出excel或文本文件,需要定义导出方式及格式;

<!--[if !supportLists]-->(3)    <!--[endif]-->考虑配置数据定义和维护时的方便快捷性,定义配置数据的格式及维护界面;

 

 

PS: EEPlatwww.eeplat.com  讨论群: 105867861(验证填写EEPLAT2014))从根本上也是这种思想的产物,只不过EEPlat实现的系统的整体的分析定义和通用解析执行。

 

 

0
0
分享到:
评论

相关推荐

    基于CWM的企业元数据集成中元数据抽取与导出研究 (2008年)

    公共仓库元模型(CWM)是为了在数据仓库和业务分析环境之间方便交换元数据而制定的一个标准,并已经成为模型驱动体系结构(MDA)新策略方向中的核心组成部份。基于CWM的企业元数据集成相关技术,重点探讨集成中元...

    领域驱动设计与模式实战

    8.5.1 元数据映射:元数据的类型 8.5.2 标识字段 8.5.3 外键映射 8.5.4 嵌入值 8.5.5 继承解决方案 8.5.6 标识映射 8.5.7 操作单元 8.5.8 延迟加载/立即加载 8.5.9 并发控制 8.6 小结 第9章 应用NHibernate 9.1 为...

    C#程序开发范例宝典(第2版).part13

    实例082 从DataGridView控件拖放数据至TreeView控件 113 实例083 在DataGridView控件中实现合并单元格 116 实例084 在DataGridView控件中显示图片 118 实例085 为DataGridView控件实现复选功能 120 实例086 禁用...

    C#程序开发范例宝典(第2版).part08

    实例082 从DataGridView控件拖放数据至TreeView控件 113 实例083 在DataGridView控件中实现合并单元格 116 实例084 在DataGridView控件中显示图片 118 实例085 为DataGridView控件实现复选功能 120 实例086 禁用...

    C#程序开发范例宝典(第2版).part02

    实例082 从DataGridView控件拖放数据至TreeView控件 113 实例083 在DataGridView控件中实现合并单元格 116 实例084 在DataGridView控件中显示图片 118 实例085 为DataGridView控件实现复选功能 120 实例086 禁用...

    C#程序开发范例宝典(第2版).part12

    实例082 从DataGridView控件拖放数据至TreeView控件 113 实例083 在DataGridView控件中实现合并单元格 116 实例084 在DataGridView控件中显示图片 118 实例085 为DataGridView控件实现复选功能 120 实例086 禁用...

    java范例开发大全

    实例26 存上100元需要多少天 40 实例27 输出100之间的所有偶数 41 实例28 如何判断回文数字 42 3.4 do…while语句 43 实例29 输出100之间的所有奇数 44 实例30 求最大的随机数 44 3.5 switch语句 45 实例31 判断字母...

    C#.net_经典编程例子400个

    68 实例059 在ListBox控件间交换数据 68 实例060 将数据库数据添加到组合框中 70 实例061 借助绑定控件实现数据选择录入 71 实例062 ListBox拒绝添加重复信息 72 2.6 选择类控件应用 73...

    采煤机关键零件参数化建模与分析系统

    为提高采煤机关键零件建模与有限元分析效率,降低对用户软件操作水平的要求,在Visual Studio 2012集成编译环境下,利用NX二次开发工具开发了采煤机关键零件参数化建模与分析系统。该系统将用户输入参数和应用程序中...

Global site tag (gtag.js) - Google Analytics