对增删改查用面向对象进行包装

已经有两年多没有做过这种后台的增删改查的工作了,最近突然接到这种性质 的工作,觉的如果还是和以前一样做的话,是不是有点太泛味了,之前的一年多本人 学习了设计模式,对面向对象的理解比以前有所增加。理解当然的想起代码重构。

增删改查,从字面上来讲,无非就是四个操作,如果我们非要定义一个名称的 话,我是这样定义的,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 面向对象,以便于您获取更多的相关知识。

时间: 2025-01-30 04:06:09

对增删改查用面向对象进行包装的相关文章

[EF]使用EF简单增删改查

目录 认识EF 添加数据 删除数据 修改数据 查询数据 总结 认识EF ADO.NET Entity Framework 是微软以ADO.NET为基础所发展出来的对象关系对伊(O/R Mapping)解决方案,早起被称为ObjectSpage,最新版本EF6. 实体框架Entity Framework是ADO.NET中的一组支持面向数据的软件应用程序的技术.是微软的一个ORM框架. 什么是O/R Mapping 广义上,ORM指的是面向对象模型和关系数据库的数据结构之间的相互转换. 狭义上,OR

PHP简单操作MongoDB的方法(安装及增删改查)_php技巧

本文实例讲述了PHP简单操作MongoDB的方法.分享给大家供大家参考,具体如下: php操作MongoDB的话首先从网上下载MongoDB的扩展包,https://github.com/mongodb/mongo-php-driver/downloads,选择对应的扩展包. 这是我下的,然后解压,VC6适合apache,VC9适合IIS,ts(thread safe)指PHP以模块形式运行的. 然后把其中的php_mongo.dll放在PHP中的ext文件夹中,然后在PHP.INI里面加入ex

详解Android中一些SQLite的增删改查操作_Android

在Android开发中经常要涉及到对数据的操作.Android本身提供了四种数据存储方式.包括:SharePreference,SQLite,Content Provider,File. 在Android,数据都是么私有的,要实现数据共享,正确方式是使用Content Provider.SQLite: SQLite是一个轻量级的数据库,支持基本SQL语法,是常被采用的一种数据存储方式.Android为此数据库提供了一个名为SQLiteDatabase的类,封装了一些操作数据库的API.Share

java除了增删改查还能干什么?

问题描述 java除了写增删改查,还能干什么啊?自己写了多半年的增删改查,感觉java除了写增删改查也写不出什么了,现在又要找工作,感觉很迷惑.求解惑!! 解决方案 换个工作吧,增删改查也就是最基础的东西,编程最大的价值在于实现有价值的思想:)跟语言没有关系,用java比较多只是因为java学习和使用相对简单解决方案二:现在Java的需求这么火爆,说明它可以做很多事情,至于你只知道这点,说明你的见识还很短浅.送你一句话:路漫漫而修远,吾将上下而求索.解决方案三: 解决方案四:增删改查是数据库的操

PHP简单数据库操作类实例【支持增删改查及链式操作】_php技巧

本文实例讲述了PHP简单数据库操作类.分享给大家供大家参考,具体如下: 在进行项目开发时,数据库是必不可少的东西了.但是很多时候却又对数据库SQL语句的繁杂而感到头疼.提供一个我自己使用的数据库操作类(模型Model),供大家使用.支持增.删.改.查,支持链式操作,代码不到100行,非常小巧方便,很适合小项目的快速部署使用. /** * * @Authot: summer * * @E-mail: wenghang1228@me.com * * @Data: 2015-02-06 * * @Pr

Yii针对添加行的增删改查操作示例_php实例

本文实例讲述了Yii针对添加行的增删改查操作.分享给大家供大家参考,具体如下: 效果图: 控制器: <?php namespace backend\controllers; use Yii; use yii\web\Controller; use backend\models\Zhan; class IndexController extends Controller { //显示页面 public function actionIndex() { $index=new Zhan(); //接受

CodeIgniter框架基本增删改查操作示例

本文实例讲述了CodeIgniter框架基本增删改查操作.分享给大家供大家参考,具体如下: 对于codeigniter的增删改,在此我用自己的一个例子来说明一下: 创建数据库: CREATE TABLE IF NOT EXISTS `users` ( `id` int(10) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, `password` varchar(50) NOT NULL, `email` varchar(100)

Laravel使用memcached缓存对文章增删改查进行优化的方法

本文实例讲述了Laravel使用memcached缓存对文章增删改查进行优化的方法.分享给大家供大家参考,具体如下: 这里我们将以文章的增删改查作为实例系统讲述缓存的使用,这个实例是对之前创建RESTFul风格控制器实现文章增删改查这篇教程的改造和升级,我们将在其基础上融合进Eloquent ORM和模型事件,将应用的场景直接拉到生成环境. 1.准备工作 路由及控制器 路由的定义和控制器的创建保持和创建RESTFul风格控制器实现文章增删改查中一样. 创建数据表 关于文章对应数据表我们在数据库部

详解Android中一些SQLite的增删改查操作

在Android开发中经常要涉及到对数据的操作.Android本身提供了四种数据存储方式.包括:SharePreference,SQLite,Content Provider,File. 在Android,数据都是么私有的,要实现数据共享,正确方式是使用Content Provider. SQLite: SQLite是一个轻量级的数据库,支持基本SQL语法,是常被采用的一种数据存储方式.Android为此数据库提供了一个名为SQLiteDatabase的类,封装了一些操作数据库的API. Sha