### OR Mapping:一种基于Config配置的对象映射解决方案 #### 概述 OR Mapping是一种对象关系映射(Object-Relational Mapping, ORM)技术的应用方案,它主要用于简化开发人员在数据库操作时的数据模型转换工作。该技术的核心在于将面向对象的数据结构与关系型数据库之间建立了一种映射关系,从而使得开发人员能够更加专注于业务逻辑的开发,而无需过多地关注底层的数据访问细节。 #### 技术背景与目的 传统的数据库操作通常涉及到SQL字符串的构建、执行以及结果集的处理等过程,这些过程不仅繁琐而且容易出错。为了解决这些问题,OR Mapping提出了一种新的思路:通过配置文件的方式将数据库表结构和应用程序中的对象进行映射,并且将SQL语句独立于业务逻辑之外,避免了硬编码的问题,同时也降低了维护成本。 #### 详细设计说明 ##### 实体类生成器 **EntityBuilder** 类作为OR Mapping中核心组件之一,负责根据数据库中的数据填充实体类对象。它支持多种方式的实体类生成,包括但不限于: - `public static T BuildEntity<T>(DataRow dr)`:根据`DataRow`对象填充实体类。 - `public static List<T> BuildEntityList<T>(DataRow[] rows)`:根据数组形式的`DataRow`集合填充实体列表。 - `public static List<T> BuildEntityList<T>(DataTable table)`:根据`DataTable`对象填充实体列表。 - `internal static T BuildEntity<T>(IDataReader dr)`:根据`IDataReader`接口填充实体类。 这些方法利用了C#的泛型特性,提供了高度灵活的实体类生成能力,适用于不同的应用场景。 ##### MDLSQL语句配置文件 为了更好地管理和维护SQL语句,OR Mapping引入了**MDLSQL语句配置文件**的概念。这些配置文件存储了每个业务模块对应的SQL处理语句,并赋予它们唯一的`CommandName`。这样做的好处是: 1. **可维护性增强**:所有SQL语句都被集中管理,便于查找和更新。 2. **减少耦合**:业务逻辑与SQL语句分离,降低了耦合度,提高了系统的灵活性。 **DataCommand** 类是用于执行配置文件中的SQL语句的关键组件,它类似于.NET Framework中的`SqlCommand`类。DataCommand支持多种类型的查询结果返回,例如: - `public DataSet ExecuteDataSet()` - `public DataTable ExecuteDataTable()` - `public IDataReader ExecuteDataReader()` - `public object ExecuteScalar()` - `public int ExecuteNonQuery()` 同时,它还支持直接返回实体类或实体列表的操作,如: - `public T ExecuteEntity<T>() where T : class, new()` - `public List<T> ExecuteEntityList<T>() where T : class, new()` - `public T ExecuteScalar<T>()` 这些方法极大地简化了对查询结果的处理过程,提高了开发效率。 ##### 参数设置与事务处理 **DataCommand** 还提供了一系列方法用于设置和获取参数值,如: - `public void SetParameterValue(string paramName, object val)` - `public object GetParameterValue(string paramName)` 此外,为了支持更复杂的业务逻辑,DataCommand还提供了事务处理的能力,包括提交事务、回滚事务等操作: - `public void CommitTransaction()` - `public void RollbackTransaction()` 这些功能确保了数据的一致性和完整性,在处理复杂的数据库操作时尤为重要。 #### 总结 OR Mapping作为一种基于Config配置的对象映射解决方案,通过实体类生成器、MDLSQL语句配置文件以及DataCommand等关键技术组件,实现了数据库操作的高度抽象化和自动化,极大提升了开发效率并减少了错误的发生。对于追求高效、稳定的软件项目而言,采用OR Mapping不失为一个明智的选择。




















剩余11页未读,继续阅读

- 让梦想疯狂2018-09-03原来是文档。。。。

- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 省域基础教育信息化资源建设与应用的实践探索.docx
- C面向对象程序设计方案模拟试题五.doc
- 通信工程建设具体流程.ppt
- 区块链视角下供应链金融融资模式研究.docx
- 探讨网络安全中计算机信息管理技术的应用.docx
- 汽车自动驾驶中的目标识别技术解析
- 信息系统项目管理师试题doc.doc
- AAGUI-C语言资源
- CSDN技术中心-让你自己的操作系统支持鼠标——做一个支持图形界面的操作系统(下).doc
- 计算机硬件系统的日常维护方法策略.docx
- 探讨计算机数据库的构建与管理维护.docx
- C多线程文件搜索软件设计方案毕业设计方案(含源文件).doc
- 基于无线传感器网络的成品粮仓储环境温湿度监测系统设计.docx
- 基于双边市场的银行卡网络管制研究.docx
- 大学计算机基础操作题汇总.docx
- 浅探政府投资项目管理中如何加强变更签证管理.doc


