上一次写了第三版,
因为之前无意之间看到一段视频,说是把系统中所有的SQL语句都做成存储过程。可以在很大程度上优化系统的SQL执行速度。所以百度了一下细节问题,之后我把所有的SQL语句,都做成了存储过程。
其实写存储过程也很简单(可能是简单的系统,不需要太复杂的SQL语句),只需要在数据库里建立存储过程,然后在程序之中调用就行。
1.首先先建立存储过程:
展开使用的数据库→可编程性→存储过程。然后右击,新建存储过程。
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: H_F_us
-- Create date: 2014年12月29日09:18:01
-- Description: 删除一条员工信息
-- =============================================
ALTER PROCEDURE [dbo].[deleteperson] @id int AS
BEGIN delete from person where id = @id END
上面是建立好的存储过程:
1.其中ALTER PROCEDURE 后面跟的是存储过程的名称,只要符合SQL命名规范,可任意选取。
2.AS上面,是SQL语句中要使用到的参数。
3.BEGIN 和 END之间是要执行的SQL语句。
这时候就可以在系统代码中调用了。
personDAO类中:
/// <summary>
/// 删除员工信息
/// </summary>
/// <param name="id">要删除员工的id</param>
/// <returns>返回真假值:如果是真显示删除成功,如果是假显示删除失败</returns>
public bool delete(person p)
{
bool flag = false; SqlParameter[] paras = new SqlParameter[]
{
new SqlParameter("@id", p.id)
}; string prd = "deleteperson"; int res = sq.ExecuteNonQuery(prd, paras, CommandType.StoredProcedure); if (res > )
{
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, CommandType cmt)
{
cmd = new SqlCommand(sql, getcon()); cmd.CommandType = cmt; cmd.Parameters.AddRange(paras); return cmd.ExecuteNonQuery();
}
注解:*在SQLHelper类中的ExecuteNonQuery方法中添加,CommandType cmt,也就是要指明要执行的是什么类型,之后就可以把原本的SQL语句换成存储过程,然后在SQLHelper类中,添加 cmd.CommandType = cmt; 指定要执行的的类型。
上面就是使用存储过程执行SQL语句。写的不是太详细,但是核心代码写了出来,方便以后查看。
简单的web三层架构系统【第四版】的更多相关文章
-
简单的web三层架构系统【第二版】
昨天写了 web三层架构的第一版,准确的说是三层架构的前期,顶多算是个二层架构,要慢慢完善. 第一版里,程序虽说能运行起来,但是有一个缺陷,就是里面的SQL语句,是使用的拼接字符进行执行.这样安全系数 ...
-
简单的web三层架构系统【第三版】
今天是第三版,和前几天一样今天还是要对代码进行优化,三层架构是一种思想,具体能不能使得整个系统安全和高性能,还是要看代码编写的是否合理,逻辑性是否严谨. 昨天偶然间看到别人写的三层架构中,竟然没有在方 ...
-
简单的web三层架构系统【第五版】
接上一版,今天差不多就是三层架构后台代码的完结了,这一版写完,接下来就是前台的制作了,前台不太熟悉,还在深入学习.过一段时间在写,今天先把后台代码写完. 三层架构包括DAL层, BLL层, UI层(也 ...
-
简单的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通过网页前端显示,非常之实 ...
随机推荐
-
简单回顾NPOI导入导出excel文件
当前环境.net4.0 去官方下下载: NOPI官网 关于NOPI的详细,这里就不再介绍. 在项目中,我们只需引入 NPOI.dll 就可以了. 接下来..................... ...
-
RHEL5.8配置NFS服务
机器配置:4C+16GB 操作系统:RedHat Enterprise Linux 5.8 NFS基础 NFS(Network File System)是Linux系统之间使用最为广泛的文件共享协议, ...
-
《利用Python进行数据分析》第4章学习笔记
NumPy基础:数组和矢量计算 NumPy的ndarray:一种多维数组对象 该对象是一个快速灵活的大数据集容器.你可以利用这种数组对整块数据执行一些数学运算,其语法跟标量元素之间的运算一样 列表转换 ...
-
前端科普文—为什么<;!DOCTYPE>; 不可或缺
When question comes 你一定在 HTML 页面最前面看到过这样一行代码(比如 百度): <!DOCTYPE html> 或者说类似这样的(比如 博客园-韩子迟 PS:博客 ...
-
java gc的调用机制 和编程规则
转载:http://sunzhyng.iteye.com/blog/480148 一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,有一些应用程序对性能要求 ...
-
Ansible 系列之 Patterns
Ansible 之 Patterns 1.Ansible中的Patterns决定了我们要管理哪个主机,意思是与哪些主机进行交互. 我们将在Ad-Hoc(Ad-Hoc 是指 临时执行的命令,要结合着模块 ...
-
Java学习笔记42(数据库连接池 druid连接池)
druid连接池: 是阿里的连接池,druid的稳定性及效率都很高,目前用的比较广,所以建议开发过程中尽量用druid连接池(支持国产最重要) druid连接池也需要配置文件,配置文件必须是prope ...
-
css设置字体单行,多行超出省略号显示
单行: overflow: hidden; text-overflow:ellipsis; white-space: nowrap; 多行 display: -webkit-box; -webkit- ...
-
如何用SQL脚本在SQL Server Replication中创建合并复制,以及怎么创建分区合并复制
假设我们要创建合并复制的发布端数据库是EFDemo其中有四张表,订阅端数据库是EFDemoSubscription,如下图所示: 首先创建发布端快照代理Sql agent job:"EFDe ...
-
Unity生成简易二维码
最近项目需求,需要在Unity中动态生成二维码.所以就研究了一下,下面把动态生成二维码的方法向大家分享一下. 第一种方法 需要一个 ZXing.dll文件. 下载地址我会在文章结尾给出. 直接将下载好 ...