您的位置:首页 > 运维架构 > 网站架构

简易三层架构详解

2014-04-08 15:24 267 查看
何为三层架构?通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。

表现层(UI):即展现给用户的界面;

业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理;

数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。

下面通过通过一个简单的例子来描述三层架构:

需求

实现一个客户信息管理界面(包括增加、修改、删除)操作;

用户sql—server作为数据库

以下是成型界面,至于UI设计是否合理,望各位大神拍砖

public class SqlHelper
{
private static string connstr = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;

/// <summary>
/// 查询数据
/// </summary>
/// <param name="sql"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public static Object ExecuteScalar(string sql, params SqlParameter[] parameters)
{
using (SqlConnection cnn = new SqlConnection(connstr))
{
cnn.Open();
using (SqlCommand cmd = cnn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteScalar();
}
}
}

/// <summary>
/// 增、删、改操作
/// </summary>
/// <param name="sql"></param>
/// <param name="parameters"></param>
public static void ExecuteNonQuery(string sql, params SqlParameter[] parameters)
{
using (SqlConnection cnn = new SqlConnection(connstr))
{
cnn.Open();
using (SqlCommand cmd = cnn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameters);
cmd.ExecuteNonQuery();
}
}
}

/// <summary>
/// 单个查询结果返回
/// </summary>
/// <param name="sql"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters)
{
using (SqlConnection cnn = new SqlConnection(connstr))
{
cnn.Open();
using (SqlCommand cmd = cnn.CreateCommand())
{
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameters);
SqlDataAdapter apter = new SqlDataAdapter(cmd);
DataSet dataset = new DataSet();
apter.Fill(dataset);
return dataset.Tables[0];
}
}
}
}
业务模型层

public  class Custom
{
public long Id { set; get; }
public string Name { set; get; }
public DateTime? BirthDay { set; get; }
public string Address { set; get; }
public string TelNum { set; get; }
public int Custlevel { set; get; }
}


sqlHelper公共类
业务模型层

public  class Custom
{
public long Id { set; get; }
public string Name { set; get; }
public DateTime? BirthDay { set; get; }
public string Address { set; get; }
public string TelNum { set; get; }
public int Custlevel { set; get; }
}


上述用思想,图形表示如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: