说说动软的2种架构和3种数据层(转自木子屋)_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 说说动软的2种架构和3种数据层(转自木子屋)

说说动软的2种架构和3种数据层(转自木子屋)

 2012/4/15 1:20:01  minh456  程序员俱乐部  我要评论(0)
  • 摘要:转载而来,为了表示感谢,贴出原文地址:http://www.mzwu.com/article.asp?id=1882在动软.Net代码生成器2.1.9中我们可以看到他默认支持2种架构(简单三层结构和基于工厂模式三层架构)和3种数据层类型(基于SQL字符串方式、基于Parameter方式和基于存储过程方式的数据层),这些是我们常见的架构和数据层类型,下边我们再做些说明。一、架构1.简单三层结构在这种架构中主要包含Model、BLL和DAL三层,通常是每张表在这三层都有一个对应的文件(类)
  • 标签:数据 架构
转载而来,为了表示感谢,贴出原文地址:http://www.mzwu.com/article.asp?id=1882

在动软.Net代码生成器 2.1.9中我们可以看到他默认支持2种架构(简单三层结构和基于工厂模式三层架构)和3种数据层类型(基于SQL字符串方式、基于Parameter方式和基于存储过程方式的数据层),这些是我们常见的架构和数据层类型,下边我们再做些说明。

一、架构

1.简单三层结构

在这种架构中主要包含Model、BLL和DAL三层,通常是每张表在这三层都有一个对应的文件(类),Model中为实体类,BLL层封装一些逻辑操作并调用DAL层的方法来查询数据库

2.基于工厂模式三层架构

在这种架构中,除了基本的Model、BLL和DAL三层结构外,多了DALFactory和IDAL两层,DAL层中的类都继承自IDAL中的接口,BLL层则通过DALFactory来判断调用哪个DAL层,工厂模式三层架构在支持多种数据库类型的Web应用程序中特别的有用。

二、数据层类型

为了便于说明,下边的例子都是要在student表中添加一条记录。

1.基于SQL字符串方式

其实就是通过字符串拼接组成SQL语句:


程序代码

{
    String strSQL = String.Format("Insert Into student(name,age) Values('{0}',{1})", info.Name, info.Age.ToString());
    SqlCommand cmd = new SqlCommand(strSQL,conn);
    return cmd.ExecuteNonQuery();
}

2.基于Parameter方式

基于Parameter方式有个别名为参数化查询:

程序代码

{
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = conn;
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "Insert Into student(name,age) Values(@Name,@Age)";

    cmd.Parameters.Add("@Name", SqlDbType.NVarChar).Value = info.Name;
    cmd.Parameters.Add("@Age", SqlDbType.Int).Value = info.Age;

    return cmd.ExecuteNonQuery();
}

3.基于存储过程方式

通过调用存储过程来完成数据库操作:

程序代码

{
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = conn;
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "Proc_Student_Add";

    cmd.Parameters.Add("@Name", SqlDbType.NVarChar).Value = info.Name;
    cmd.Parameters.Add("@Age", SqlDbType.Int).Value = info.Age;
    cmd.Parameters.Add("@Return", SqlDbType.Int).Direction = ParameterDirection.ReturnValue;

    cmd.ExecuteNonQuery();

    return Convert.ToInt32(cmd.Parameters["@Return"].Value);
}


有关SQL字符串方式和Parameter方式的比较大家可看看《使用参数化查询的优点》这篇文章。
发表评论
用户名: 匿名