博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单的web三层架构系统【第三版】
阅读量:4931 次
发布时间:2019-06-11

本文共 3736 字,大约阅读时间需要 12 分钟。

 

今天是第三版,和前几天一样今天还是要对代码进行优化,三层架构是一种思想,具体能不能使得整个系统安全和高性能,还是要看代码编写的是否合理,逻辑性是否严谨。

 

昨天偶然间看到别人写的三层架构中,竟然没有在方法中传递单个参数,而是直接声明了一个对象整体的当传参。最后上网查,发现原来是在系统里多加了一层,叫做模型层,就是用来在系统的各层之间传递数据的,这样就避免了为一个方法传递多个参数现象。

具体深入的模型层使用还在学习当中,今天就用学到的一点简单的模型层知识,对代码进行再一次优化。

 

首相先建立一个模型层(Model)在里面创建一个实体类(person):

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6  7 namespace Model 8 { 9     public class person10     {11         //员工编号12         public string id;13 14         public string Id15         {16             get { return id; }17             set { id = value; }18         }19 20         //员工姓名21         public string name;22 23         public string Name24         {25             get { return name; }26             set { name = value; }27         }28 29         //员工性别30         public string sex;31 32         public string Sex33         {34             get { return sex; }35             set { sex = value; }36         }37 38         //员工工资39         public string salary;40 41         public string Salary42         {43             get { return salary; }44             set { salary = value; }45         }46 47         //构造函数,无参48         public person()49         {50  51         }52 53         //构造函数,传入一个参数 id54         public person(string id)55         {56             this.id = id;57         }58 59         //构造函数,传入三个参数 name, sex, salary60         public person(string name, string sex, string salary)61         {62             this.name = name;63 64             this.sex = sex;65 66             this.salary = salary;67         }68 69         //构造函数,传入四个参数 id, name, sex, salary70         public person(string id, string name, string sex, string salary)71         {72             this.id = id;73 74             this.name = name;75 76             this.sex = sex;77 78             this.salary = salary;79         }80     }81 }

 

 

然后对之前的代码进行简单的修改,在这里就不发出全部方法的更改了,其它方法类似:

 

先引入模型层(Model):

using Model;

 

default.aspx.cs代码:

1     //更改员工信息 2     protected void update_Click(object sender, EventArgs e) 3     { 4         string id = this.update_id.Text.Trim(); 5  6         string name = this.update_name.Text.Trim(); 7  8         string sex = this.update_sex.Text.Trim(); 9 10         string salary = this.update_salary.Text.Trim();11 12         person p = new person(id, name, sex, salary);13 14         if (pd.update(p))15         {16             this.lbl_3.Text = " * 更改成功!";17         }18     }

 

personDAO类:

1         public bool update(person p) 2         { 3             bool flag = false; 4  5             SqlParameter[] paras = new SqlParameter[]//创建参数数组 6             { 7                 new SqlParameter("@id", p.id), 8                 new SqlParameter("@name", p.name), 9                 new SqlParameter("@sex", p.sex),10                 new SqlParameter("@salary", p.salary)11             };12 13             //使用参数数组里的值14             string sql = "update person set [name] = @id, sex = @name, salary = @sex where id = salary";15 16             if (sq.ExecuteNonQuery(sql, paras) > 0)17             {18                 flag = true;19             }20 21             return flag;22         }

 

SQLHelper类(不改变):

1         ///  2         /// 执行带参数的增删改SQL语句 3         ///  4         /// 要执行的SQL语句 5         /// 传入的参数 6         /// 
返回受影响的行数
7 public int ExecuteNonQuery(string sql, SqlParameter[] paras) 8 { 9 int res;10 11 cmd = new SqlCommand(sql, getcon());12 13 cmd.Parameters.AddRange(paras);16 17 res = cmd.ExecuteNonQuery();18 19 return res;20 }

 

*实体类的使用,在小项目里效果不明显,因此有很多人说,实体类可有可无,但是真正到了大型项目里面,实体类的使用使得整个系统变得更加流畅,紧密,逻辑性也更好。

 

转载于:https://www.cnblogs.com/KTblog/p/4190968.html

你可能感兴趣的文章
Nginx 入门
查看>>
openCR-用ROS代码点亮LED的方法
查看>>
豆瓣电影api
查看>>
BufferedInputStream和FileInputStream的区别
查看>>
二阶段之六
查看>>
微博爬虫 python
查看>>
中石油 【递归】普通递归关系
查看>>
vue报错Error in render: "TypeError: Cannot read property '0' of undefined"
查看>>
silverlight 隐藏ChildWindow 右上角的关闭按钮
查看>>
oracle获取子串
查看>>
List排序
查看>>
字符串操作
查看>>
redis
查看>>
likely() 和 unlikely()
查看>>
03一些View总结
查看>>
每月一次,免费领取小米云服务会员
查看>>
MapReduce--平均分,最高,低分以及及格率的计算
查看>>
mac下管理论文的工具
查看>>
POJ3122Pie(二分)
查看>>
114. Flatten Binary Tree to Linked List
查看>>