已经有两年多没有做过这种后台的增删改查的工作了,最近突然接到这种性质 的工作,觉的如果还是和以前一样做的话,是不是有点太泛味了,之前的一年多本人 学习了设计模式,对面向对象的理解比以前有所增加。理解当然的想起代码重构。
增删改查,从字面上来讲,无非就是四个操作,如果我们非要定义一个名称的 话,我是这样定义的,ADD,Delete,Update,GetList,也就是说无论是针对哪张 表的维护无外乎这四个操作,唯一的不同就是每个表在维护时对于实体的操作不 同,我们一般都会把数据库的表映射到相应的实体类中,这点我们大可利用vs 2005就有的泛型来解决。下面我介绍下我的实现方式:
第一:项目结构介绍。这是不能少的。
1:MyChinaBusiness.IInterface,这个层用来放些接口或者是抽象类。
2:MyChinaBusiness.DAL,这个层是数据处理层。
3:MyChinaBusiness.BLL,这个层就是对应的业务逻辑层。
4:MyChinaBusiness.Web,这个自然是表示层了。
5:MyChinaBusiness.Model,这个层用来存放所有的实体对象。
第二:在IInterface层中创建一个抽象类DataOpration.cs,这个类是一个泛 型类。作用就是对所有的后台增删改查操作进行约束。两个抽象方法Add,Update 都非常好理解,至于下面的getList这里为什么定义了一个虚方法呢?那是因为我 对取数据以前封装了一个比较通用的方法,所以这里想直接拿来复用,但这个方 法会调用数据处理层的方法,如果直接把方法体拿过来会存在循环依赖的问题, 所以这个方法只是简单返回一个空记录集,实际调用时,会在具体的业务逻辑类 中重写它。
public abstract class DataOpration<T> 它包含了我们常的三个方法,代码如下: /// <summary> /// 添加数据 /// </summary> /// <param name="t"></param> /// <returns></returns> public abstract int Add(T t); /// <summary> /// 修改数据 /// </summary> /// <param name="t"></param> /// <returns></returns> public abstract int Update(T t); /// <summary> /// 读取记录集 /// </summary> /// <param name="iRowCount"></param> /// <param name="iPageNumber"></param> /// <param name="procName"></param> /// <param name="sCondition"></param> /// <param name="strsCompositor"></param> /// <param name="pageCount"></param> /// <param name="recordCount"></param> /// <param name="iNextPageNumber"></param> /// <returns></returns> public virtual DataTable getList(int iRowCount, int iPageNumber, string procName, string sCondition, string strsCompositor, out int pageCount, out int recordCount, out int iNextPageNumber) { pageCount = 0; recordCount = 0; iNextPageNumber = 0; return new DataTable(); }
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索int
, 面向对象
, 方法
, 增删改查
, 抽象
, public
, 删改
, 增删改
, 一个
, tree数据增删改
, yii增删改查实例
, jquery_easyui增删改
大数据增删改
js json对象增删改查、面向对象、js面向对象编程、js面向对象、c 面向对象,以便于您获取更多的相关知识。