简单的web三层架构系统【第一版】

SQLhelper助手类编写:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 using System.Data;
 8 using System.Data.SqlClient;
 9 using System.Configuration;
10
11 namespace DAL
12 {
13     public class SQLHelper
14     {
15         SqlCommand cmd = null;
16
17         public string strcon()
18         {
19             string strcon = ConfigurationManager.ConnectionStrings["strcon"].ConnectionString;
20
21             return strcon;
22         }
23
24         public SqlConnection getcon()
25         {
26             SqlConnection con = new SqlConnection(strcon());
27
28             if (con.State == ConnectionState.Closed)
29             {
30                 con.Open();
31             }
32
33             return con;
34         }
35
36         /// <summary>
37         /// 执行增删改查的SQL语句
38         /// </summary>
39         /// <param name="sql">要执行的SQL</param>
40         /// <returns>返回执行SQL语句后影响的行数</returns>
41         public int ExecuteNonQuery(string sql)
42         {
43             int res;
44
45             try
46             {
47                 cmd = new SqlCommand(sql, getcon());
48
49                 res = cmd.ExecuteNonQuery();
50             }
51             catch (Exception ex)
52             {
53                 throw ex;
54             }
55             finally
56             {
57                 if (getcon().State == ConnectionState.Open)
58                 {
59                     getcon().Close();
60                 }
61             }
62
63             return res;
64         }
65
66         /// <summary>
67         /// 执行传入的SQL查询语句
68         /// </summary>
69         /// <param name="sql">要执行的查询SQL</param>
70         /// <returns>返回查询SQL语句的数据集</returns>
71         public DataTable ExecuteQuery(string sql)
72         {
73             DataTable dt = new DataTable();
74
75             SqlConnection con = new SqlConnection(strcon());
76
77             //创建一个SqlCommand对象cmd,让其连接数据库,并指向sql语句。
78             cmd = new SqlCommand(sql, getcon());
79
80             //执行cmd连接的数据库.使用using后在执行完毕后,直接关闭sdr。不需要写sdr.closed.
81             using (SqlDataReader sdr = cmd.ExecuteReader())
82             {
83                 dt.Load(sdr);// Load 适合于SqlDataReader。如果是SqlDataAdapter,则要用到 Fill 方法。
84             }
85
86             getcon().Close();
87
88             return dt;
89         }
90     }
91 }

personDAO员工操作类编写:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Threading.Tasks;
  6
  7 using System.Data;
  8 using System.Data.SqlClient;
  9
 10 namespace DAL
 11 {
 12     public class personDAO
 13     {
 14         SQLHelper sq = null;
 15
 16         public personDAO()
 17         {
 18             sq = new SQLHelper();
 19         }
 20
 21         /// <summary>
 22         /// 增加员工信息
 23         /// </summary>
 24         /// <param name="name">要添加的员工姓名</param>
 25         /// <param name="sex">要添加的员工性别</param>
 26         /// <param name="salary">要添加的员工工资</param>
 27         /// <returns>返回真假值:如果是真显示添加成功,如果是假显示添加失败</returns>
 28         public bool insert(string name, string sex, string salary)
 29         {
 30             bool flag = false;
 31
 32             string sql = "insert into person ([name], sex, salary) values (‘"+name+"‘, ‘"+sex+"‘, ‘"+salary+"‘)";
 33
 34             if (sq.ExecuteNonQuery(sql) > 0)
 35             {
 36                 flag = true;
 37             }
 38
 39             return flag;
 40         }
 41
 42         /// <summary>
 43         /// 删除员工信息
 44         /// </summary>
 45         /// <param name="id">要删除员工的id</param>
 46         /// <returns>返回真假值:如果是真显示删除成功,如果是假显示删除失败</returns>
 47         public bool delete(string id)
 48         {
 49             bool flag = false;
 50
 51             string sql = "delete from person where id = ‘" +id+ "‘";
 52
 53             if (sq.ExecuteNonQuery(sql) > 0)
 54             {
 55                 flag = true;
 56             }
 57
 58             return flag;
 59         }
 60
 61         /// <summary>
 62         /// 更改员工信息
 63         /// </summary>
 64         /// <param name="id">要更改的员工编号</param>
 65         /// <param name="name">要更改的员工姓名</param>
 66         /// <param name="sex">要更改的员工性别</param>
 67         /// <param name="salary">要更改的员工工资</param>
 68         /// <returns>返回真假值:如果是真显示更改成功,如果是假显示更改失败</returns>
 69         public bool update(string id, string name, string sex, string salary)
 70         {
 71             bool flag = false;
 72
 73             string sql ="update person set [name] = ‘"+name+"‘, sex = ‘"+sex+"‘, salary = ‘"+salary+"‘ where id = ‘"+id+"‘";
 74
 75             if (sq.ExecuteNonQuery(sql) > 0)
 76             {
 77                 flag = true;
 78             }
 79
 80             return flag;
 81         }
 82
 83         /// <summary>
 84         /// 判断员工姓名是否重复
 85         /// </summary>
 86         /// <param name="name">要进行判断的员工姓名</param>
 87         /// <returns>返回真假值:如果是真代表重复,如果是假进行添加</returns>
 88         public bool repeat(string name)
 89         {
 90             bool flag = false;
 91
 92             string sql = "select * from person where [name] = ‘" +name+ "‘";
 93
 94             #region 这样写的话,还要重新建立一张虚拟表,如果直接用下面的方法,进行行数的判断就不需要建立。
 95             //DataTable dt = sq.ExecuteQuery(sql);
 96
 97             //if (dt.Rows.Count > 0)//dt.Rows.Count 这个方法是检查返回的虚拟表中是不是有数据,如果有的话则行数不为零。如果没有的话则行数为零。
 98             //{
 99             //    flag = true;
100             //}
101             #endregion
102
103             if (sq.ExecuteQuery(sql).Rows.Count > 0)//dt.Rows.Count 这个方法是检查返回的虚拟表中是不是有数据,如果有的话则行数不为零。如果没有的话则行数为零。
104             {
105                 flag = true;
106             }
107
108             return flag;
109         }
110     }
111 }
时间: 2024-12-21 15:55:57

简单的web三层架构系统【第一版】的相关文章

简单的web三层架构系统【第二版】

昨天写了 web三层架构的第一版,准确的说是三层架构的前期,顶多算是个二层架构,要慢慢完善. 第一版里,程序虽说能运行起来,但是有一个缺陷,就是里面的SQL语句,是使用的拼接字符进行执行.这样安全系数很低,如果有心人的话,可能会SQL注入,重新拼接字符,然后篡改我们的数据库内容,导致不可挽回的损失. 在第二版本,也就是这一版里,我对原来的SQL语句进行了重构,使用带参数的SQL语句对数据库进行操作,这样做的好处是,无论用户输入的是什么格式的字符,SQL语句都会原封不动的把这些字符写入到数据库中,

简单的web三层架构系统【第三版】

今天是第三版,和前几天一样今天还是要对代码进行优化,三层架构是一种思想,具体能不能使得整个系统安全和高性能,还是要看代码编写的是否合理,逻辑性是否严谨. 昨天偶然间看到别人写的三层架构中,竟然没有在方法中传递单个参数,而是直接声明了一个对象整体的当传参.最后上网查,发现原来是在系统里多加了一层,叫做模型层,就是用来在系统的各层之间传递数据的,这样就避免了为一个方法传递多个参数现象. 具体深入的模型层使用还在学习当中,今天就用学到的一点简单的模型层知识,对代码进行再一次优化. 首相先建立一个模型层

简单的web三层架构系统【第五版】

接上一版,今天差不多就是三层架构后台代码的完结了,这一版写完,接下来就是前台的制作了,前台不太熟悉,还在深入学习.过一段时间在写,今天先把后台代码写完. 三层架构包括DAL层, BLL层, UI层(也就是web层),前几版重点放在DAL上,也就是数据访问层代码的编写.其实BLL层中的代码编写起来容易,真正的要灵活的用起来,还是需要一些算法方面的基础的,BLL业务逻辑层,主要处理逻辑方面的东西,这一层不太涉及也不需要编写数据库中的代码,因为在DAL层中已经编写完成,只需要在BLL中定义使用即可.

简单的web三层架构系统【第四版】

上一次写了第三版, 因为之前无意之间看到一段视频,说是把系统中所有的SQL语句都做成存储过程.可以在很大程度上优化系统的SQL执行速度.所以百度了一下细节问题,之后我把所有的SQL语句,都做成了存储过程. 其实写存储过程也很简单(可能是简单的系统,不需要太复杂的SQL语句),只需要在数据库里建立存储过程,然后在程序之中调用就行. 1.首先先建立存储过程: 展开使用的数据库→可编程性→存储过程.然后右击,新建存储过程. 1 set ANSI_NULLS ON 2 set QUOTED_IDENTI

关于WEB三层架构的思考

1.MVC设计思想 MVC程序设计思想是目前比较流行的WEB开发的模式,其中,M(model)是模型,即JavaBean,用来封装和保存数据:V(view)是视图,即JSP,用来显示内容:C(controller)是控制器,即servlet,用来处理业务逻辑.大致流程是这样的:编写一个JSP页面用来获取信息(如登录页面获取用户登录名.密码),并将信息封装到JavaBean中,提交到服务器端由WEB容器将数据封装成request请求,交给servlet来处理.servlet从请求中获取用户信息到数

WEB三层架构与MVC

web三层架构是指: >用户接口层(UI Layer) >业务逻辑层(Bussiness Layer) >持久化层 关于业务逻辑和用户接口 在早期的web开发中,因为业务比较简单,并没有这三层的划分.用户数据的呈现及输入的接收.封装.验证.处理.以及对数据库的操作,都放在jsp页面中.这时的开发,好比盘古尚未开天辟地,整个web开发就是一片“混沌”.随着业务越来越复杂,人们开始考虑更好的利用OOP这把利刃来解决问题.于是有人发现把业务逻辑抽取出来并形成与显示和持久化无关的一层,能够让业务

Django——WEB三层架构与MVC

而我发此文的目的有二:一者,让初学者能够听到一家之言,是为解惑:二者,更希望抛砖引玉,得到专家的批判. 许多学生经常问我,MVC到底和WEB三层架构有啥关系? 开始时,我也只能给他们一些模糊的回答.时间长了,自己的良心开始受到谴责.对于一个程序员来说,这个问题显得挺学究.我在跟自己的许多程序员朋友以及同 行(Java讲师)都对MVC和WEB三层架构的关系做了探讨.现在可以说对WEB三层架构和MVC之间的关系理出了头绪.此可谓教学相长. 先说说Web三层架构这个古老话题.地球人都知道web三层架构

Java Web 三层架构详解

java 三层架构ssh 一个spring2.5+hibernate3.2+struts2.0组合框架,使用spring的 IoC来管理应用的 所有bean,包括struts2的 action,充分发挥了spring轻量级框架的 优势.  摘 要: 针对当前Web应用程序开发面临的问题,结合目前比较流行的开源框架Spring.Struts和hibernate,提出了一种开发J2EE Web应用的轻量级解决方案,以帮助开发人员在短期内搭建结构清晰.可复用性好.维护方便的Web应用程序.并且,通过案

Web三层架构及MVC

关于 三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了“高内聚,低耦合”的思想. 1.表现层(UI,也称用户接口层):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得. 2.业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理. 3.持久化层(数据层DAL):其功能主要是负责数据库的访问,可以访问数据库系统.二进制文件