简单的web三层架构系统【第三版】
今天是第三版,和前几天一样今天还是要对代码进行优化,三层架构是一种思想,具体能不能使得整个系统安全和高性能,还是要看代码编写的是否合理,逻辑性是否严谨。
昨天偶然间看到别人写的三层架构中,竟然没有在方法中传递单个参数,而是直接声明了一个对象整体的当传参。最后上网查,发现原来是在系统里多加了一层,叫做模型层,就是用来在系统的各层之间传递数据的,这样就避免了为一个方法传递多个参数现象。
具体深入的模型层使用还在学习当中,今天就用学到的一点简单的模型层知识,对代码进行再一次优化。
首相先建立一个模型层(Model)在里面创建一个实体类(person):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Model
{
public class person
{
//员工编号
public string id; public string Id
{
get { return id; }
set { id = value; }
} //员工姓名
public string name; public string Name
{
get { return name; }
set { name = value; }
} //员工性别
public string sex; public string Sex
{
get { return sex; }
set { sex = value; }
} //员工工资
public string salary; public string Salary
{
get { return salary; }
set { salary = value; }
} //构造函数,无参
public person()
{ } //构造函数,传入一个参数 id
public person(string id)
{
this.id = id;
} //构造函数,传入三个参数 name, sex, salary
public person(string name, string sex, string salary)
{
this.name = name; this.sex = sex; this.salary = salary;
} //构造函数,传入四个参数 id, name, sex, salary
public person(string id, string name, string sex, string salary)
{
this.id = id; this.name = name; this.sex = sex; this.salary = salary;
}
}
}
然后对之前的代码进行简单的修改,在这里就不发出全部方法的更改了,其它方法类似:
先引入模型层(Model):
using Model;
default.aspx.cs代码:
//更改员工信息
protected void update_Click(object sender, EventArgs e)
{
string id = this.update_id.Text.Trim(); string name = this.update_name.Text.Trim(); string sex = this.update_sex.Text.Trim(); string salary = this.update_salary.Text.Trim(); person p = new person(id, name, sex, salary); if (pd.update(p))
{
this.lbl_3.Text = " * 更改成功!";
}
}
personDAO类:
public bool update(person p)
{
bool flag = false; SqlParameter[] paras = new SqlParameter[]//创建参数数组
{
new SqlParameter("@id", p.id),
new SqlParameter("@name", p.name),
new SqlParameter("@sex", p.sex),
new SqlParameter("@salary", p.salary)
}; //使用参数数组里的值
string sql = "update person set [name] = @id, sex = @name, salary = @sex where id = salary"; if (sq.ExecuteNonQuery(sql, paras) > )
{
flag = true;
} return flag;
}
SQLHelper类(不改变):
/// <summary>
/// 执行带参数的增删改SQL语句
/// </summary>
/// <param name="sql">要执行的SQL语句</param>
/// <param name="paras">传入的参数</param>
/// <returns>返回受影响的行数</returns>
public int ExecuteNonQuery(string sql, SqlParameter[] paras)
{
int res; cmd = new SqlCommand(sql, getcon()); cmd.Parameters.AddRange(paras); res = cmd.ExecuteNonQuery(); return res;
}
*实体类的使用,在小项目里效果不明显,因此有很多人说,实体类可有可无,但是真正到了大型项目里面,实体类的使用使得整个系统变得更加流畅,紧密,逻辑性也更好。
简单的web三层架构系统【第三版】的更多相关文章
- 简单的web三层架构系统【第二版】
昨天写了 web三层架构的第一版,准确的说是三层架构的前期,顶多算是个二层架构,要慢慢完善. 第一版里,程序虽说能运行起来,但是有一个缺陷,就是里面的SQL语句,是使用的拼接字符进行执行.这样安全系数 ...
- 简单的web三层架构系统【第五版】
接上一版,今天差不多就是三层架构后台代码的完结了,这一版写完,接下来就是前台的制作了,前台不太熟悉,还在深入学习.过一段时间在写,今天先把后台代码写完. 三层架构包括DAL层, BLL层, UI层(也 ...
- 简单的web三层架构系统【第四版】
上一次写了第三版, 因为之前无意之间看到一段视频,说是把系统中所有的SQL语句都做成存储过程.可以在很大程度上优化系统的SQL执行速度.所以百度了一下细节问题,之后我把所有的SQL语句,都做成了存储过 ...
- 简单的web三层架构系统【第一版】
SQLhelper助手类编写: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using Sys ...
- 关于WEB三层架构的思考
1.MVC设计思想 MVC程序设计思想是眼下比較流行的WEB开发的模式,当中,M(model)是模型.即JavaBean,用来封装和保存数据:V(view)是视图,即JSP.用来显示内容:C(cont ...
- 使用Servlet和JSP实现一个简单的Web聊天室系统
1 问题描述 利用Java EE相关技术实现一个简单的Web聊天室系统,具体要求如下. (1)编写一个登录 ...
- WEB三层架构与MVC
web三层架构是指: >用户接口层(UI Layer) >业务逻辑层(Bussiness Layer) >持久化层 关于业务逻辑和用户接口 在早期的web开发中,因为业务比较简单,并 ...
- Django——WEB三层架构与MVC
而我发此文的目的有二:一者,让初学者能够听到一家之言,是为解惑:二者,更希望抛砖引玉,得到专家的批判. 许多学生经常问我,MVC到底和WEB三层架构有啥关系? 开始时,我也只能给他们一些模糊的回答.时 ...
- 使用Java编写一个简单的Web的监控系统cpu利用率,cpu温度,总内存大小
原文:http://www.jb51.net/article/75002.htm 这篇文章主要介绍了使用Java编写一个简单的Web的监控系统的例子,并且将重要信息转为XML通过网页前端显示,非常之实 ...
随机推荐
- MVC自学第一课
了解传统的ASP.NET WebForm ASP.NET 在02年问世,给Web开发领域带来了巨大转变.下图描述了当时微软的技术堆栈. ASP.NET WebForm 技术堆栈 (注:此图的含义为,W ...
- ThinkPHP中使用ajax接收json数据的方法
本文实例讲述了ThinkPHP中使用ajax接收json数据的方法.分享给大家供大家参考.具体分析如下: 这里通过ThinkPHP+jquery实现ajax,扩展了下,写了个查询,前台代码如下: 首先 ...
- MiniSD卡是什么
Mini SD卡比目前主流的普通SD卡(如DC或DV上使用的SD卡),在外形上更加小巧,重量仅有3克左右,体积只有21.5x20x1.4mm,比普通SD卡足足节省了60%的空间.别小看这么小的外形,它 ...
- Referrer 还是 Referer?
上回我写了一篇文章介绍「Referrer Policy」,有小伙伴看完后问我:Referrer 这个单词到底怎么拼,为什么有时候中间有两个 r,有时候只有一个? 是的,这是一个很有趣的问题,这里就给有 ...
- sublime text 插件开发
前言:术语和参考资料 sublime text 2的扩展模式相当的丰富.有多种方法可以修改语法高亮模式以及所有的菜单等.它还可以创建一个新的build系统,自动补全,语言定义,代码片段,宏定义,快捷键 ...
- POJ 3111 K Best(最大化平均值)
题目链接:click here~~ [题目大意]有n个物品的重量和价值各自是Wi和Vi.从中选出K个物品使得单位重量的价值最大,输出物品的编号 [解题思路]:最大化平均值的经典.參见click her ...
- Unity3D-第一视角射击游戏
一.新建关卡 File,Save Scene,File,New Scene,File,Save Scene as... ,Level02.unity 1.建立场景 从Assets中拖放场景模型到Hie ...
- C# 文件帮助类
using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; us ...
- Android - 不管在应用的哪个activity按Home键整个App就结束了
最开始,客户反映说在用app的时候,来个电话,接完再点app,不是原来的界面,而是重启了.数据都没了,所以就在activity重写onSaveInstanceState方法,将数据保存起来.后经测试发 ...
- NOPI导出Excel
NOPI导出Excel /// <summary> /// 导出的方法 Excel样式 /// </summary> /// <param name="ds&q ...