基于 ORM 模型的物资管理系统的设计和实现.doc
《基于 ORM 模型的物资管理系统的设计和实现.doc》由会员分享,可在线阅读,更多相关《基于 ORM 模型的物资管理系统的设计和实现.doc(10页珍藏版)》请在三一文库上搜索。
1、豆丁网精品论文基于 ORM 模型的物资管理系统的设计和实现任钢 中国科学技术大学计算机科学技术系,合肥 (230027) E-mail:摘要:本文提出了一种基于.NET 平台的实现对象和关系数据库的转化的 ORM 模型。在 分析.NET 平台的数据库处理的技术基础上,本文设计了一个对象/关系数据库映射模式。并结合这个模式创建了一个通用的数据操作框架。该框架在揭阳供电局、汕头供电局和汕尾供 电局物资管理系统中给予了实现。关键词:物资管理系统;.NET 框架;对象关系映射 中图分类号:TP311.11引言物资管理是企业生产经营管理的重要环节,高水平的物资管理能够有助于提高企业效 益。通过这个系统,
2、公司能够很好地重组和管理物资资源,达到了企业减少成本,提高公 司生产效率和效益的目的。本文基于.NET平台的ORM技术的揭阳供电局、汕头供电局和汕 尾供电局物资管理系统进行深入的研究,并提出设计方案和实现过程。2关键技术2.1 NET框架1.NET Framework 是微软推出的新一代的计算平台,其作用是建立一个可以快速构建 Web 应用、建立网络应用程序的计算平台。.NET 框架由公共语言运行时(CLR)、共享对象 类库和 ASP.NET 三部分组成。2.2 ASP.NET2ASP.NET 是一项功能强大的新技术,它用于编写动态 Web 页。ASPNET 建立在NET Framework
3、类的基础之上,并提供了由控件和基础部分组成的“Web 程序模板”,大大简化了 Web 程序和 XML Web 服务的开发。程序员直接面对的是一组 ASPNET 控件,而这些控 件由一些诸如文本框、下拉选单等通用的 HTML 用户界面构件封装而成。实际上,这些控 件运行于 Web 服务器上,并以 HTML 的形式将用户界面发送到浏览器。ASP.NET 程序可用 多种语言开发,本系统采用 C#3语言编写。2.3 ADO.NET4ADO.NET 是微软提供的一种高性能访问数据源的策略,运用 ADO.NET 能够编写对数 据库服务器中的数据进行访问和操作的应用程序,并且易于使用、高效、低内存支出和占用
4、 磁盘空间较少,支持用于建立基于客户端/服务器和 Web 的应用程序的主要功能。ADO.NET 技术是一个基于标准的、面向创建的、分布式数据共享应用程序的编程模型。ADO.NET 主要包 含四 个主要专业组件( Connection 、 Command 、 DataReader 和DataAdapter)和一个综合的组件 DataSet。其.NET 数据访问架构如图 1 所示。图 1 .NET 数据访问架构2.4对象关系映射模式(ORM模式)对象关系映射模式(ORM 模式),即 Object-Relational Mapping,是把对象模型表示 的对象映射到基于 SQL 的关系模型结构中去,
5、同时支持对象到关系数据库表的持久化。本 质上,ORM 是将数据从一种数据格式转换为另一种数据格式,将对象映像到某种持久机制 并且对关系数据库结构的简单改动并不影响面向对象代码的一个健壮的持久层。它的作用是 在关系型数据库和对象之间作一个映射,实现类与数据库表的映射,做到真正的数据库与业 务层的无关。3 总体设计和实现3.1 系统设计核心但是目前数据存储都是存放在关系数据库,面向对象和面向关系这两种技术在设计思想 以及操作上截然不同:对象由数据和行为组成,而关系型数据库则是由表和它们之间的关系 组成的。因此一个完善的持久化方案需要关注如下问题5: 将关系数据库的关系模式模型转 化为对象模型; 对
6、象模型的业务处理转化为关系数据库的 SQL 处理。 提供查询机制, 能从关系数据库中的行列数据转化为对象;。 有一个接口或管理者来实现并发控制、事务 等方面的管理。C#是开发.NET 应用程序的一种面向对象语言。在用 C#开发程序时就要求在面向对象和面向关系之间进行切换。在.NET 框架中对数据库的访问,由于数据源的不同而产生不同的 Connection、DataAdapter、Command、Parameter 对象。所以,创建一个.NET 平台持久化方 案,一方面要实现对象与关系数据库的映射,另一方面要从.NET 框架的特殊情况,形成一 个通用的数据操作模式,支持这种对象/关系映射的实现。
7、图 2 是通用数据操作框架的类图 模型:ITransaction+ TransCount : intIExecuteSqlICreateSqlObject+BeginTransaction ()+CommitTransaction (): void: void+ ExecuteDataSet (DataSet _DataS+ ExecuteNonQuery (IDbCommand _+RollbackTransaction () : void+ ExecuteReader (IDbCommand _id+ CreateConnection (): IDbConnection+ get_Tran
8、sCount (): int+ ExecuteScalar (IDbCommand _idbC+ CreateDataAdapter () : IDbDataAdapter+ ExecuteUpdate (DataSet _DataSeDbProviderType+ CreateCommand ()+ CreateParameter (): IDbCommand: IDbDataParameter+ Unknown: int+ SQLSERVER : intDataHelper-Helper: IDbContextIDbContext+ ConnectionString : string+ O
9、LEDB+ ODBC+ ORACLE: int: int: int+ ConnectionString : string+ Connection: IDbConnection+ Connection: IDbConnection+ DbProviderType : DbProviderTypHelper+ DbProviderType : DbProviderTypem_DbProviderType+ TransCount: int+ get_ConnectionString () : string+ get_Connection (): IDbConnection+ DataHelper (
10、)+ get_DbProviderType () : DbProviderTypeDbContextHelper+ Gget_ConnectionString () : stringIDbCm_objdatahelper-m_Provider: C-m_Command: I- Provider: ID-m_ConnectionString : st+ ConnectionString: stIDataAccessProvider+ ConnectionString : str+ get_ConnectionString ()m_Provider-m_DbProviderType : D DDa
11、taHelperProvider-m_objdatahelper+ DataHelperObject- DataHelperProv+CreateConnection ()+CreateDataAdapter ()+CreateCommand ()+ get_DataHelpeOleDbDataAccessProvider-m_ConnectionStrSqlServerDataAccessProvider-m_ConnectionString : s+ ConnectionString+ OleDbDataAc+ ConnectionString : s+ SqlServerDataAcce
12、sOracleDataAccessProvider-m_ConnectionString : strin+ get_ConnectiCreateConnec+ + + get_ConnectionStrinCreateConnection () CreateDataAdapter ()+ ConnectionString: strin+ CreateCommand ()+ OracleDataAccessProv+ + + + get_ConnectionString () CreateConnection () CreateDataAdapter () CreateCommand ()图 2
13、 通用数据操作框架类图模型C#的数据操作主要是三类: 创建数据处理对象,包括 Connection、DataAdapter、 Command 和 Parameter 。 事务处理,包括 BeginTransaction 、 CommitTransaction 、 RollbackTransaction。 数据查询,包括 ExecuteDataSet、ExecuteNonQuery、ExecuteReader 和 ExecuteScalar。编写三个数据操作接口,分别针对上面三种情况。ICreateSqlObject、 ITransaction 、 IExecuteSql 。然 后 IDbCon
14、text 继承这三个接口。编写一个实现 类 DbContextHelper 继承 IDbContext 接口并实现其方法。这样,在 DbContextHelper 类中,就 包括这些内容:-m_Command- ProviderDbContextHelper: IDbCommand: IDataAccessProvider= null+ ConnectionString : string+ DbProviderType+ Connection+ Transaction+ RollbackFlag+ TransCount: DbProviderType: IDbConnection: IDbTr
15、ansaction: bool: int+ ExecuteDataSet (DataSet _DataSet, string _TableName, IDb+ ExecuteNonQuery (IDbCommand _idbCommand)+ ExecuteReader (IDbCommand _idbCommand, CommandBeh+ ExecuteScalar (IDbCommand _idbCommand)+ ExecuteUpdate (DataSet _DataSet, IDbDataAdapter _IDbD+ CreateConnection ()+ CreateDataA
16、dapter ()+ CreateCommand ()+ CreateParameter ()-OleDbDataAccessProvider m_ConnectionString : string-ConfigNewConnection ()+ ConnectionString: string-ConfigNewTransaction ()+ OleDbDataAccessProvider (string AConnectionString)+Init ()+Clearup (bool canCloseConnection)+Clearup ()+EnterContext (IDbComma
17、nd _idbCommand)+EnterContext (IDbDataAdapter _IDbDataAdaper)+ BeginTransaction ()+ CommitTransaction ()+ RollbackTransaction ()-Clear ()+ + + + + + get_ConnectionString () CreateConnection () CreateDataAdapter () CreateCommand () CreateParameter ()CreateParameter (string parameterName, DbType dataCr
18、eateParameter (string parameterName, object paramCreateCommandBuilder (IDbDataAdapter ADataAdapte图 3 DbContextHelper 类属性和方法图 4 OleDbDataAccessProvider 类属性和方法对于数据源类型,编写一个数据访问接口,IDataAccessProvider 。增加三个实现类 OracleDataAccessProvider、SqlServerDataAccessProvider 和 OleDbDataAccessProvider,分别 针对 Oracle 数据库
19、、SQL Server 数据库和 OLE.DB 数据库的实现。当处理不同的数据源时, 返回不同的 Connection、DataAdapter、Command 和 Parameter。其中 OleDbDataAccessProvider 实现类如图 4 所示。对于 VO 对象与 SQL 的转化,通过一个类 SqlBuilder 来处理。在所有的 VO 对象中都 有一个 SqlBuilder 属性。当对 VO 对象进行操作时,这些属性变化都已经加载到了该对象的 SqlBuilder 属性 中 。当执 行 SqlBuilder 的 ToDeleteCommand 、 ToInsertCommand
20、 、 ToSelectCommand、ToUpdateCommand,根据这些属性的变化,把对象属性转化为 Delete、 Insert、Select、Update 的 SQL 语句。在转化的过程中,包括对象的检索条件和传递的参数。 SqlBuilder 类是一个面向.Net Framework 环境的对象/关系数据库映射类。对象/关系数据库映 射用来把对象模型表示的对象映射到基于 SQL 的关系语言中去。DbContextHelper 提供数据 提交、数据查询和获取数据的方法,可以大幅度减少开发时人工使用 SQL 和 Connection、 DbDataAdapter、DbCommand、D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ORM 模型的物资管理系统的设计和实现 模型 物资 管理 系统 设计 实现
链接地址:https://www.31doc.com/p-3625467.html