三层架构浅析.doc

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
m ile 不以省天下之物,而欲蕴天下之事,难矣!对于需求來说,客户永远是对的。 平凡&伟人不可分。年轻不狂妄自大,拼搏耍有计划。 博客园首页博问闪存新随笔联系订阅 博客园首页博问闪存新随笔 联系 订阅 XML 管理 随笔?76评论-14 文章trackbacks-0三层架构浅析项目炕赖方 随笔?76评论-14 文章trackbacks-0 三层架构浅析 项目炕赖方P ( 表现层 ) (] 中闾;务层 )(斂恳问层) 中鸟业吳层 ( 技海访问层 ES I三层和咖 ES I三层和咖0层式焙榔- “三层架构”屮的三层是指:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL) 表现层:通俗讲就是展现给用八的界而,即用八在使用」个系统时候他的所见所得。 位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交 互式操作的界面。 业务逻辑层:针对儿体问题的操作,也川以说是对数据层的操作,对数据业务逻辑处理。 负责处理用八输入的信息,或者是将这些信息发送给数据访问层进行保存,或者是调用数据访问 层屮的函数再次读出这些数据。屮间业务层也川以包括一些对“商业逻辑”描述代码在里面 数据访问层:该层所做事务H接操作数据库,丄E对数据的增添、删除、修改、更新、查找。 仅实现对数据的保存和读取操作。数据访问,可以访问数据库系统、二进制文件、文本文档或是 XML文档 优缺点: 优点: 1、 开发人员可以只关注整个结构屮的英屮某一层; 2、 可以很容易的用新的实现來替换原有层次的实现; 3、 可以降低层与层之间的依赖; 4、 有利于标准化; 5、 利于各层逻辑的复用。 缺点: 1、 降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以巴接造访 数据库,以此获取相应的数据,如今却必须通过屮间层来完成。 2、 有时会导致级联的修改。这种修改尤其体现在口上而下的方向。如果在表示层中需要增 加-个功能,为保证英设计符合分层式结构,口J能需耍在相应的业务逻辑层和数据访问层屮都增 加相应的代码。 简单的三层如下所示: 数据访问层:DAL sqlhelp 类: pub丄ic class Sc[丄Help { private SqlConnection con; //连接对象 private SqlCommand cmd;//操作对象 private SqlDataAdapter sda; //适配器(填充和更新数据库的一纽.数据命令和一个数据库 连接) private SclDataReader reader; //i卖取 private DataSet ds;//数据集 III <summary> ///初始化连接对象 /// </summary> public void Connection () { try { con = new SqlConnection(Sq丄Conn ? Str); con.Open(); } catch (Exception) { /// } } public int Command(string strsql) { try { Connection {) ; //打开连接 cmd = new Sq丄Command(strsq丄/ con); int count = cmd? ExecuteNonQuery () ;//返冋受影响的行数 return count; } catch (Exception) { return -1; } finally con ? Dispose(); III <summary> ///返回一个数据集合 /// </summary> III <param name=nstrsq丄”>数据库操作语句</p且r^m> /// <returns>^fcft;^</returns〉 public D且taSet ReturnDs (staring strsql, string table) { try { Connection(); sda = new SqlDataAdapter(strsql, con); ds = new DataSet(); sda.Fill(dsz table); return ds; } catch (Exception) { return null; } finally { con ? Dispose(); } } /// <summary> ///返回一个只进的读取流 III </summary> III <param name=”strsq丄">数据库操作语句</p且rum> /// <re turns〉返冋一行数据〈/re turns〉 public SqlDataReader ReturnReader (st^ing strs

文档评论(0)

ggkkppp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档