国产达梦数据库的结合Enterprise Library的应用开发

在上篇《基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操作》介绍了如何在Enterprise Library的数据访问层上支持这种神秘的国产数据库-达梦数据库。本文继续这一主题,介绍产达梦数据库的结合Enterprise Library的应用开发。

1、达梦数据库还原处理

达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。达梦数据库管理系统的最新版本是7.0版本,简称DM7。DM7提供对SQL92的特性支持以及SQL99的核心级别支持;支持多种数据库开发接口,包括OLE DB、ADO、ODBC、OCI、JDBC、Hibernate、PHP、PDO、DB Express以及.Net DataProvider等。

达梦数据库可以在(http://www.dameng.com/)上下载试用,安装好后提供很多管理工具,安装后可以让它创建一些实例数据库,以方便我们了解数据库的基本操作。

达梦数据库安装后,在系统开始菜单里面有一些管理工具和PDF文件链接,如下所示。有时间建议阅读下用户手册里面的几个文件,里面的文档写的还是很详细,覆盖数据库管理操作、数据库编程开发、数据库语法几部分的内容。

在Winform开发框架中,在框架源码目录DatabaseDx里面,提供了一个达梦数据库的备份文件(Winframwork.dmp),里面包含了框架所需的表和数据,使用框架前还原(导入)数据库即可。操作方法是在“DM管理工具”界面里面,左边的模式树上面右键出现【导入】功能,然后选择导入数据库操作,界面如下所示。

单击【导入】功能后,在弹出的界面上,选择对应的目录和数据库备份文件,并输入需要的模式名称即可,界面操作如下所示。

还原(导入)达梦数据库后,刷新模式树列表,则会在左边的模式看到新导入的数据库相关信息。

2、开发应用的扩展整合

基于Enterprise Library的开发框架,底层使用了微软的数据访问组件Enterprise Library,以适应多种数据库类型的操作,它的分层如下所示,每个DAL层(如DALSQL、DALOracle等)都提供了对应数据库的实现,界面层一下的分层图如下所示。

如果增加多一种数据库,那么我们增加多一个Enterprise Library的组件扩展类,并在业务数据模块里面增加对应的DAL层即可。

Enterprise Library实现其他数据库的支持,需要增加一个组件扩展类,如EntLibContrib.Data.SQLite是用来支持SQLite数据库的,EntLibContrib.Data.MySql是用来支持Mysql的,这个扩展类的内容也不多,主要是用来解析Enterprise Library扩展的配置内容的。

3、扩展支持的配置参数

在开发框架里面的启动程序或者WCF服务里面的Web.Config配置文件,我们看到如下的配置信息。

在配置文件里面,我添加了1、2、3个步骤,第1步是指达梦数据库的连接字符串,这个是基于Enterprise Library的连接参数内容,由于Enterprise Library默认并不支持达梦数据库的,是通过其扩展模块EntLibContrib.Data.Dm进行支持的,因此需要在第2步里面指定具体的扩展对象和程序集信息;最后为了在框架里面知道具体的数据库类型,在第3步增加了一个ComponentDbType的配置信息,用来确定是哪种数据库类型(因为框架支持多种数据库,需要明确类型,方便构建不同的查询语句语法)。

最后提及的是第3步里面的DM_Schema是达梦数据库的配置参数,因为达梦数据库需要指定具体的表的模式前缀。指定了这个参数,我们在数据库模块里面的表名,就可以统一使用这个配置的【模式】名称了,如我们可以在DALDm数据访问层里面,使用这个this.Schema的属性,这个属性的值就是通过上面的DM_Schema配置获取的。

当然,我们已经在数据访问层里面,为tableName增加了数据库模式前缀(相当于Schema.TableName);如果在DALDm层里面,使用了this.tableName这个参数,那么它已经内置包含了数据库模式的前缀,所以不需要在使用tableName的时候,还显示的增加模式的值,具体正确使用如下所示。

也就是说,如果使用this.tableName这个参数,那么当前表就不用增加模式前缀,否则为表名增加this.Schema这个属性前缀。

4、如何开发支持达梦数据库的应用

由于本文主要介绍如何整合达梦数据库,开发基于达梦数据库的业务应用,因此将重点介绍如何基于这个数据库进行的框架代码生成。

由于整个Enterprise Library的开发框架,在业务层及UI层,是不涉及具体的数据库处理的,因此这些特性让它能够很好提供多数据库的支持,我们基于这个原则,一般也不要打破这个约定,不要在UI层或者BLL层使用特定数据库的SQL。

为了快速开发框架代码,提供两种方式供快速生成数据访问层的代码,一种是基于其他数据库访问层的复制并修改处理,另一种是全新的数据访问层生成。前者是在其他数据访问层已经完成的情况下,可以快速复制并修改即可。后者这是开始增量开发业务,在代码生成工具Database2Sharp支持的基础上进行代码生成。

1)基于其他数据库访问层的复制处理

由于不同的数据库支持,是创建不同的数据访问层,如达梦数据库的数据访问层,一般为DALDm,如下图所示就是字典模块中的数据访问层代码。

上面我们看到,达梦数据库的数据访问层它的命名空间为WHC.Dictionary.DALDm这样的格式,前面部分为主命名空间,后面部分基本为约定的名称DALDm;而这个DictType数据访问类的基类这是继承了达梦数据库的数据访问基类BaseDALDm,这个做法和其他数据库类似。

我们看到,这个内容和SQLServer的数据访问层基本相同的,SQLServer的数据访问层代码如下所示。

对比我们可以看到,他们之间基本上一样的,如果我们在已经开发好了一种数据类型的实现基础上,在进行另外一种数据访问层的代码开发,我们就可以这样快速操作实现代码的复制、修改。

(1)  在VS里面按住Ctrl按键,并用鼠标进行拖动,复制一份副本,修改目录为DALDm。

(2)  在VS里面,关闭全部代码窗口,把复制生成的文件全部打开。

(3)  替换DALSQL为DALDm,这样每个类里面会替换两次内容,实现命名空间和基类名称的统一替换。

(4)  调整其他层对DALDm的引用关系。

重新编译代码即可。

2)全新的数据访问层生成

这种方式的代码生成,需要在代码生成工具里面,选择Enterprise Library架构生成,生成的代码把它们逐一复制到对应的目录,并调整相关的引用关系即可。

具体可以参考代码生成工具Database2Sharp的操作说明。

 

本文转自博客园伍华聪的博客,原文链接:国产达梦数据库的结合Enterprise Library的应用开发,如需转载请自行联系原博主。

时间: 2024-09-20 16:26:47

国产达梦数据库的结合Enterprise Library的应用开发的相关文章

基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操作

由于一个客户朋友的需求,需要我的Winform开发框架支持国产达梦数据库的操作,这个数据库很早就听过,但是真正一般项目用的很少,一般在一些特殊的项目可能需要用到.由于我的Winform开发框架,是基于Enterprise Library的数据访问层的实现,因此增加一个数据库的支持很容易,本文介绍如何在框架层面上支持这种神秘的国产数据库-达梦数据库. 1.达梦数据库的简单介绍 达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM.达梦数据库管理系统的最新版本是7.

达梦数据库周淳:达梦产品比ORALCE更具优势

 近年来信息技术高速发展,人们一边享受着信息的高效便捷,一边为信息安全隐患忧心忡忡.今年全国两会上,信息安全也成了人们关注的一大"热词",有人大代表提出我国要把信息安全牢牢掌握在自己手里,应加快基础软硬件的国产化替代进程. 达梦数据库某些产品性能优于ORALCE 据了解国内在基础软件领域的研究已经取得相当进展,国内最好的数据库厂家达梦数据库目前已经开始渗透数据库核心应用领域.在国家电网调度系统招标中,达梦击败国际数据库巨头甲骨文,在全国应用;在航空领域,达梦与中国航信共同签署的&quo

国产数据库之达梦数据库 - DM7 MPP集群安装配置

武汉达梦数据库作为国产数据库较有代表性的企业,在数据库研发方面投入了大量的精力,其自主研发的达梦数据库DM7,除了具有单机版可与Oracle相媲美的能力外,同时也研发了一款无共享MPP架构的数据库软件,主要面向在线分析(OLAP)领域. 下面的分享主要参考和使用达梦公司官网提供的下载包及安装文档,感兴趣的同学请自行下载.下载链接:http://www.dameng.com/service/download.shtml 1.MPP集群规划 本集群打算使用2台服务器,每台服务器规划3个数据库实例,总

达梦数据库的性能优化 应对数据膨胀

文章讲的是达梦数据库的性能优化 应对数据膨胀,"棱镜门"."微软XP系统停摆"的接踵而至给我国信息安全敲响了警钟,也加速了国内 "去IOE"运动的进程.达梦数据库作为连续5年国产数据库市场占有率第一的高性能.高可靠性.高安全性.高兼容性大型关系型数据库管理系统,已成功替代了Oracle,在电力.金融.电子政务.教育等行业领域得到了广泛的应用,逐渐成为国家信息化建设的重要基础平台.为了更好地支撑业务应用,有效管理和利用信息时代不断产生并急剧膨胀的数

达梦数据库签约泰国教育部 奠定行业领先地位

    近日,国内知名数据库厂商达梦宣布与泰国教育部达成深度合作协议,共同搭建泰国教育部云平台"智慧泰国"项目,达梦数据库将为泰国教育信息化的升级改造提供有力的技术支撑.本项目的成功签署标志着达梦数据库已被市场高度认可,跻身国际一流软件行业的同时,成为国内数据库行业的绝对领先者. 泰国教育云平台项目是建设"智慧泰国"的内容之一,主要是对教育信息化进行升级改造,以便更好地服务于泰国广大的中小学生以及老师,全面提升中小学教育的信息共享质量以及教育趣味性.在泰国教育云平台

达梦数据库签约中铁建 构建首个财务共享平台

 做为国内唯一家拥护有自主知识产权的数据库厂商,达梦的数据库产品认可度开始被更多国际巨头所青睐.近日,达梦公司宣布与世界500强企业的中国铁建股份有限公司达成合作,旗下的数据库管理系统DM7为中铁建搭了国内首个财务大共享平台,成功解决了中铁建之前对于财务难以实现统一管理.财务数据难以统一等诸多问题.而凭借完全自主研发并获得国家安全4级的安全资质,达梦数据库的产品安全性也同样得到了中铁建方面的全面认可. 中国铁建是中国乃至全球最具实力.最具规模的特大型综合建设集团之一,下属有20多个工程局,每个工

达梦数据库的连接配置

数据库访问是数据库应用系统中非常重要的组成部分.达梦数据库作为一个通用数据库管理系统,提供了多种数据库访问接口,包括ODBC.JDBC.API.OLEDB以及嵌入方式等.本文主要列出了在Java中常见的连接达梦数据库的方法-- 1.建立基本的JDBC连接 JDBC(Java Database Connectivity)是Java应用程序与数据库的接口规范,旨在让各数据库开发商为Java程序员提供标准的数据库应用程序编程接口(API).JDBC定义了一个跨数据库.跨平台的通用SQL数据库API.D

达梦7-spring+mybatis+达梦数据库7部署到tongweb5上?

问题描述 spring+mybatis+达梦数据库7部署到tongweb5上? spring+mybatis+达梦数据库7部署到tongweb5上,请问有人知道jdbc怎么搞吗?配置文件怎么搞?第一次接触,没有头绪额~ 解决方案 达梦数据库?没听说过还有这个数据库

达梦数据库 DBLINK问题

问题描述 达梦数据库 DBLINK问题 小弟使用DBLINK做俩达梦数据库间的同步,使用JOB调用存储过程,能够将数据同步插入.但是运行一段时间后,数据库服务会死掉,求教!!!!看网上说oracle的link 一般都需要用完之后关闭link,请问达梦的这个是怎么写的? 解决方案 要不要试试ETL工具,用时间戳同步更新,哥们你是做公安行业的吗?之前用etl做的oralce的数据同步.不知道支不支持达梦. 解决方案二: 要不要试试ETL工具,用时间戳同步更新,哥们你是做公安行业的吗?之前用etl做的