目前在需求确定了以后进行开发的步骤一般是这样的:建立数据表,建立model,构建数据操作层,最后在页面中进行调用。关于数据操作层,因为大量的操作都集中在增加、更新、删除等简易操作,而我之前的写法是每次建立model的时候就写一遍这样的方法,并且为Model中的字段赋值,而这花费了我大量的精力,于是我想找个方法,有没有能够在建立model以后自动识别数据库字段而进行增加、更新、删除等这些常用的基本方法呢?于是我找到了DBHelper.dll。目前这个组件在百度都可以进行下载。

首先先看一下我先前进行的数据库操作方法:

 public int Add(wymodel.WY_WapChannel model)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("insert into wy_wapchannel (");
strSql.Append("title,wapid,state,orderid)");
strSql.Append(" values(");
strSql.Append("@title,@wapid,@state,@orderid)");
strSql.Append(";select scope_identity();");
SqlParameter[] parameters ={
new SqlParameter("@title",SqlDbType.VarChar,200),
new SqlParameter("@wapid",SqlDbType.Int),
new SqlParameter("@state",SqlDbType.Int),
new SqlParameter("@orderid",SqlDbType.Int)
};
parameters[0].Value = model.Title;
parameters[1].Value = model.WapId;
parameters[2].Value = model.State;
parameters[3].Value = model.OrderId; object obj = SQLHelper.GetSingle(strSql.ToString(), parameters);
if (obj == null)
return 0;
else
return Convert.ToInt32(obj);
}

  以上是我的插入语句,在这里我需要将model进行数据操作,进行赋值。而一旦我数据库中新增一个字段或者删除一个字段,这些语句和参数都需要进行修改,并且不仅插入语句需要修改,更新等其他语句都可能需要修改,灵活性不高。

现在,我引入了DBHelper.dll组件,并使用其自带方法进行数据库连接:

public static class DBF
{
public static readonly DBHelper.DBFactory dbWeiyun; static DBF()
{
dbWeiyun = new DBHelper.DBFactory(System.Configuration.ConfigurationManager.ConnectionStrings["WyConn"].ConnectionString);
}
}

  这里"WyConn"是在我的webconfig配置页面里面进行数据库连接的一个参数,通过此组件自带的DBFactory方法可以便利的进行不同数据库的连接操作。

完成了这一步以后,我就要将建好的model跟数据库进行映射了:

public class TableMappings
{
static TableMappings()
{
InitWeiyun();
}
public static DBHelper.TableMapping WY_BusinessActivity { get; private set; }
public static DBHelper.TableMapping WY_ShopGoods { get; private set; }
public static DBHelper.TableMapping WY_GoodsComment { get; private set; }
private static void InitWeiyun()
{
WY_BusinessActivity = new DBHelper.TableMapping(DBF.dbWeiyun, "[WY_BusinessActivity]");
WY_ShopGoods = new DBHelper.TableMapping(DBF.dbWeiyun, "[WY_ShopGoods]");
WY_GoodsComment = new DBHelper.TableMapping(DBF.dbWeiyun, "[WY_GoodsComment]");
}
}

  这里“[WY_BusinessActivity]”等均是数据库中的数据表。

映射完成以后,我需要进行插入操作只需要将参数传入即可,直接调用组件中的insert方法。

 public bool insertComment(wymodel.WY_GoodsComment model)
{
return wydal.TableMappings.WY_GoodsComment.Insert(model);
}

  这里需要注意一点的就是,如果在Model里出现了数据库中没有的字段,要在字段前加上[ModelProperty(true)]来避免映射:

public int goodsId { set; get; }
public int star { set; get; }
public string Comment { set; get; }
public string openID { set; get; }
public DateTime intime { set; get; }
/// <summary>
/// 0商品评论,1活动评论,2跳蚤市场,3兼职
/// </summary>
public int Ctype { set; get; }
/// <summary>
/// 非数据库数据 头像
/// </summary>
[ModelProperty(true)]
public string headimgurl { get; set; }
/// <summary>
/// 非数据库数据 昵称
/// </summary>
[ModelProperty(true)]
public string nickname { get; set; }

  总之,这个组件能够帮助我们对数据库的操作进行简化,而不必浪费大量的精力进行重复的操作。

数据层使用DBHelper.dll来减少工作量的更多相关文章

  1. CYQ.Data 开源数据层框架 官方下载

    CYQData 数据框架 介绍: CYQ.Data 是一款操作数据库用的数据框架:安全稳定.简洁易用.功能强大.性能优越.内置支持多数据库.多语言.RSS.AOP.事务等功能. 使用本框架进行开发,入 ...

  2. 【类库】私房干货.Net数据层方法的封装

    [类库]私房干货.Net数据层方法的封装 作者:白宁超 时间:2016年3月5日22:51:47 摘要:继上篇<Oracle手边常用70则脚本知识汇总>文章的发表,引起很多朋友关注.便促使 ...

  3. CYQ.Data 轻量数据层之路 优雅V1.4 现世 附API帮助文档(九)

    继上一版本V1.3版本发布到现在,时隔N天了:[V1.3版本开源见:CYQ.Data 轻量数据层之路 华丽V1.3版本 框架开源] N天的时间,根据各路网友的反映及自身的想法,继续修改优化着本框架,力 ...

  4. 【开源】OSharp框架解说系列(5.2):EntityFramework数据层实现

    OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...

  5. 【开源】OSharp框架解说系列(5.1):EntityFramework数据层设计

    OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...

  6. 23、ASP.NET MVC入门到精通——业务层和数据层父类及接口-T4模板

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 在上一篇中,我们已经把项目的基本框架搭起来了,这一篇我们就来实现业务层和数据层的父接口及父类. 1.我们先来定义一个业务层父接口IBaseB ...

  7. Spring+SpringMVC+MyBatis+easyUI整合优化篇(九)数据层优化-jdbc连接池简述、druid简介

    日常啰嗦 终于回到既定轨道上了,这一篇讲讲数据库连接池的相关知识,线程池以后有机会再结合项目单独写篇文章(自己给自己挖坑,不知道什么时候能填上),从这一篇文章开始到本阶段结束的文章都会围绕数据库和da ...

  8. Spring+SpringMVC+MyBatis+easyUI整合优化篇(十三)数据层优化-表规范、索引优化

    本文提要 最近写的几篇文章都是关于数据层优化方面的,这几天也在想还有哪些地方可以优化改进,结合日志和项目代码发现,关于数据层的优化,还是有几个方面可以继续修改的,代码方面,整合了druid数据源也开启 ...

  9. EF通用数据层封装类(支持读写分离,一主多从)

    浅谈orm 记得四年前在学校第一次接触到 Ling to Sql,那时候瞬间发现不用手写sql语句是多么的方便,后面慢慢的接触了许多orm框架,像 EF,Dapper,Hibernate,Servic ...

随机推荐

  1. HDU 5820 Lights(扫描线+zkw线段树)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5820 [题目大意] 在一个大小为50000*50000的矩形中,有n个路灯. 询问是否每一对路灯之 ...

  2. 关于SQL Server数据表的五中约束

    1.主键约束(PRIMARY KEY) 主键约束可以在表中定义一个主键值,它可以唯一确定表中每一条记录,每个表中只能有一个主键约束(只能有一个主键约束的意思并不是说受主键约束的列只能有一个),并且受主 ...

  3. eclipse修改编译路径

    右击项目--properties--java build path--点击source,修改最下方的路径即可

  4. 移动端开发(四):swiper.js

    swiper.js中文网:http://www.swiper.com.cn/ 文档结构 swiper.jquery.js    是需要引用jquery.js 或者 zepto.js 时,只需直接引用该 ...

  5. 使用 IObjectSafety 标记 ATL 控件初始化的安全

    MSDN原文.这里我将代码使用到了BHO里面,运行调试没问题.拿来分享一下 概要 您可以使用 IObjectSafetyImpl 的默认实现来标记为可安全执行脚本的控件.在许多情况下,您需要将标记为可 ...

  6. (转)Windows重启延迟删除,重命名技术原理

    所谓重启延迟删除技术,就是在操作系统启动前删除或者替换文件! 说起重启延迟删除,大家可能都很陌生,但是实际上,该功能已经被各种软件所采用:如安装Windows 补丁程序(如:HotFix.Servic ...

  7. Java判断字符串是中文还是英文

    在做开发的时候我们经常需要用到根据某个字符或者字符串来判断其是中文还是英文,从而做相应的处理,其实不难,大多数人们都是用到正则来判断的,下面小贝就给大家分享一下Java判断字符串是中文还是英文 推荐文 ...

  8. NHibernate composite-id联合主键配置

    NHibernate的联合主键配置比较复杂,初次配置可能需要花些时间,但只要我们理解了,掌握一定的步骤还是很容易的. 1.设计数据结构 Users:用户表 名称 Users 说明 用户表 序号 字段名 ...

  9. perl5 第五章 文件读写

    第五章 文件读写 by flamephoenix 一.打开.关闭文件二.读文件三.写文件四.判断文件状态五.命令行参数六.打开管道 一.打开.关闭文件   语法为open (filevar, file ...

  10. 基于Visual C++2013拆解世界五百强面试题--题15-递归相加

    有一分数序列: 1/2 , 1/4 , 1/6 , 1/8 ......,用递归的方法,求此数列20项之和. 可以看出规律:每一项位1/n*2 这个很容易些递归,但是要注意一点,使用浮点数相除保存: ...