亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        存儲過程在網(wǎng)上商城系統(tǒng)開發(fā)中的應用

        2013-04-29 00:39:13吳伶琳
        計算機時代 2013年9期
        關(guān)鍵詞:網(wǎng)上商城安全性

        摘 要: 存儲過程是數(shù)據(jù)庫端執(zhí)行的一組T-SQL語句的集合。網(wǎng)上商城系統(tǒng)具有大量的用戶交互的特點,系統(tǒng)性能十分重要。文章介紹了網(wǎng)上商城系統(tǒng)的主要功能及數(shù)據(jù)庫設計,具體闡述了存儲過程在該系統(tǒng)開發(fā)中的應用。實踐結(jié)果表明,使用存儲過程能夠提高系統(tǒng)運行的效率,增強系統(tǒng)的安全性。

        關(guān)鍵詞: 存儲過程; 網(wǎng)上商城; 安全性; SQL Server

        中圖分類號:TP311 文獻標志碼:A 文章編號:1006-8228(2013)09-31-03

        0 引言

        目前國內(nèi)B2C行業(yè)正處于高速成長期,市場的進一步擴張為傳統(tǒng)企業(yè)電子商務化提供了一個發(fā)展的平臺,建立自己的B2C網(wǎng)上商城正成為未來中小企業(yè)進行網(wǎng)上開拓市場的渠道選擇[1]。網(wǎng)上商城系統(tǒng)與一般網(wǎng)站的主要區(qū)別之一是系統(tǒng)要求更多的交互,更安全地進行數(shù)據(jù)存儲和交換,因此網(wǎng)站的運行效率及安全性是網(wǎng)站設計的關(guān)鍵。存儲過程是數(shù)據(jù)庫管理系統(tǒng)中一類常用的數(shù)據(jù)庫對象,具有可模塊化編程、執(zhí)行效率高、可減輕網(wǎng)絡負載及訪問安全可靠等特點。在網(wǎng)上商城系統(tǒng)中使用該對象,可以提高網(wǎng)站的訪問速度和安全性,為用戶提供更好的購物體驗。

        1 網(wǎng)上商城系統(tǒng)

        1.1 網(wǎng)上商城系統(tǒng)的基本功能

        網(wǎng)上商城系統(tǒng)要為用戶建立一個動態(tài)的、便捷的、交互性的網(wǎng)絡購物環(huán)境,實際上是一個B/S結(jié)構(gòu)的信息系統(tǒng)[2]。它主要有兩類用戶,即普通用戶和管理員。整個系統(tǒng)可以分為前臺和后臺兩個部分,前臺主要是面向普通用戶的,主要由商品瀏覽、商品查詢、購物車、會員管理等模塊組成,后臺是面向管理員的,主要包括登錄管理、商品管理、會員管理、訂單管理、公告管理等模塊構(gòu)成。后臺功能模塊如圖1所示。

        1.2 網(wǎng)上商城系統(tǒng)的邏輯體系設計

        網(wǎng)上商城系統(tǒng)采用Microsoft Visual Studio 2010開發(fā),后臺數(shù)據(jù)庫采用SQL Server 2008。該系統(tǒng)使用三層體系結(jié)構(gòu),整個系統(tǒng)分為表示層、業(yè)務邏輯層、數(shù)據(jù)訪問層,如圖2所示。該系統(tǒng)的數(shù)據(jù)訪問層實現(xiàn)時調(diào)用了事先在數(shù)據(jù)庫后臺編制的各類存儲過程,從而提高了系統(tǒng)的運行效率,保證了系統(tǒng)的安全性。

        1.3 網(wǎng)上商城系統(tǒng)的數(shù)據(jù)庫設計

        根據(jù)系統(tǒng)的功能需求,設計出了以下數(shù)據(jù)庫關(guān)系模式:

        ⑴ 商品信息(商品編號,類別編號,商品名稱,商品介紹,進貨價格,商品圖片,進貨日期,備注);

        ⑵ 商品類別(類別編號,類別名稱);

        ⑶ 訂單信息(訂單編號,用戶名,付款方式,運送方式,訂貨日期,是否執(zhí)行,備注);

        ⑷ 訂單明細(訂單明細編號,訂單編號,商品編號,價格,數(shù)量);

        ⑸ 會員信息(會員編號,用戶名,密碼,真實姓名,地址,郵政編碼,電話,電子郵件);

        ⑹ 管理員(用戶編號,用戶名,密碼)。

        2 存儲過程及其優(yōu)點

        存儲過程是一種重要的數(shù)據(jù)庫對象,是為了實現(xiàn)某種特定的功能,將一組預編譯的SQL語句以存儲單元的形式存儲在服務器上,供用戶調(diào)用[3]。存儲過程可以帶輸入?yún)?shù)、輸出參數(shù),具有返回值。SQL Server支持五種類型的存儲過程,分別是:系統(tǒng)存儲過程、本地存儲過程、臨時存儲過程、遠程存儲過程和擴展存儲過程。

        存儲過程具有以下優(yōu)點。

        ⑴ 執(zhí)行效率高 存儲過程在創(chuàng)建時就經(jīng)過了語法檢查和性能優(yōu)化,因此在執(zhí)行時不必再重復這些步驟。存儲過程第一次調(diào)用后,就駐留在內(nèi)存中,不必再經(jīng)過編譯和優(yōu)化,所以執(zhí)行速度很快。

        ⑵ 提高軟件系統(tǒng)的可維護性 存儲過程將相關(guān)業(yè)務邏輯封裝在一起,只要創(chuàng)建一次,便可多次調(diào)用。用戶可以獨立于應用程序而對存儲過程進行修改[4]。

        ⑶ 降低網(wǎng)絡流量 存儲過程位于服務器上,調(diào)用的時候只需要傳遞存儲過程的名稱和參數(shù),因此降低了網(wǎng)絡傳輸?shù)臄?shù)據(jù)量[5]。

        ⑷ 保證系統(tǒng)的安全 存儲過程可以避免用戶在應用程序中直接嵌入SQL語句,防止SQL注入攻擊;可以在數(shù)據(jù)庫內(nèi)分別設置各個存儲過程的安全保護[6],即為存儲過程設置一定的調(diào)用權(quán)限,從而避免用戶越權(quán)訪問,保證信息系統(tǒng)的安全。

        3 存儲過程在網(wǎng)上商城系統(tǒng)中的應用

        3.1 網(wǎng)上商城系統(tǒng)中的部分存儲過程

        SQL Server中創(chuàng)建存儲過程時需要指定存儲過程的名稱、輸入?yún)?shù)、輸出參數(shù)等,在網(wǎng)上商城系統(tǒng)中,服務器端創(chuàng)建了實現(xiàn)登錄驗證、數(shù)據(jù)操作(增、刪、改、查)、數(shù)據(jù)分頁等存儲過程,大大提高了應用程序訪問數(shù)據(jù)庫的效率,具體如下。

        3.1.1 實現(xiàn)登錄驗證的存儲過程

        登錄存儲過程proc_Login主要用來驗證用戶名和密碼的合法性?;诖鎯^程的優(yōu)點,可以運用它實現(xiàn)登錄功能從而防御SQL的注入攻擊,提高系統(tǒng)的安全性。另外,可以使用“WITH ENCRYPTION”語句對存儲過程的創(chuàng)建過程進行加密,具體代碼如下。

        CREATE PROC proc_Login

        @UserName VARCHAR(20), --輸入?yún)?shù)用戶名

        @Pwd VARCHAR(20), --輸入?yún)?shù)密碼

        @Return BIT OUTPUT --輸出參數(shù),登錄結(jié)果

        WITH ENCRYPTION

        AS

        BEGIN

        IF EXISTS(SELECT COUNT(*)

        FROM Admin

        WHERE UserName=@UserName AND Pwd=@Pwd)

        SET @Return=1 --驗證成功

        ELSE

        SET @Return=0 --驗證失敗

        END

        3.1.2 增加商品的存儲過程

        網(wǎng)上商城系統(tǒng)中包括許多對數(shù)據(jù)表進行增加、刪除、修改或查詢的操作,這些都可以使用存儲過程來實現(xiàn),從而提高系統(tǒng)的可維護性。這里以增加商品來展示此類存儲過程的實現(xiàn),其他功能只需將存儲過程中的INSERT語句改成相應功能的語句即可。下面的存儲過程共包括七個輸入?yún)?shù),主要功能是實現(xiàn)商品信息的添加,具體代碼如下。

        CREATE PROCEDURE proc_InsertProduct

        @typeID INT, --類別編號

        @goodsName VARCHAR(200), --商品名稱

        @introduce TEXT, --商品介紹

        @price FLOAT, --進貨價格

        @picture VARCHAR(100), --商品圖片

        @INTime DATETIME, --進貨日期

        @remarks TEXT --備注

        AS

        BEGIN

        INSERT INTO product

        (typeID,goodsName,introduce,price,picture,INTime,remarks)

        VALUES

        (@typeID,@goodsName,@introduce,@price,@picture,

        @INTime,@remarks)

        END

        3.1.3 實現(xiàn)分頁的存儲過程

        經(jīng)典的數(shù)據(jù)分頁方法是ADO記錄集分頁法,也就是利用ADO自帶的分頁功能來實現(xiàn)分頁,但這種分頁方法僅適用于數(shù)據(jù)量較小的情形,而不適合網(wǎng)上商城這類系統(tǒng)。由于存儲過程是事先編譯好的SQL語句,它的執(zhí)行效率要比通過Web頁面?zhèn)鱽淼腟QL語句的執(zhí)行效率要高,因此在數(shù)據(jù)庫端編寫實現(xiàn)分頁的存儲過程很有必要,可以使用戶有較好的訪問體驗。實現(xiàn)通用的分頁功能,存儲過程設計時可以包括數(shù)據(jù)表名、需要返回的列、排序的字段名、頁尺寸、頁碼、返回的記錄總數(shù)等多個輸入?yún)?shù),由于本文篇幅有限,代碼此處就不列出了。

        3.2 存儲過程在.NET程序中的調(diào)用

        .NET程序中要訪問數(shù)據(jù)庫及數(shù)據(jù)庫對象,首先,要定義ADO.NET的SqlConnection對象,并利用該對象打開與數(shù)據(jù)庫的連接;其次,需要創(chuàng)建一個SqlCommand對象,并指定該對象的類型為存儲過程;如果該存儲過程有輸入?yún)?shù)或者輸出參數(shù),還需要依次在command對象的Parameters集合中通過Add()方法逐個添加參數(shù),并將參數(shù)的值傳入或傳出;然后,通過Command對象的ExecuteNonQurey()、ExecuteReader()、ExecuteScalar()等方法調(diào)用存儲過程,將增加、刪除、修改的數(shù)據(jù)插入到數(shù)據(jù)庫中,或者是將數(shù)據(jù)返回到.NET程序中;最后,關(guān)閉數(shù)據(jù)庫連接。下面以增加商品的存儲過程proc_InsertProduct為例,列出其在.NET中編寫的關(guān)鍵代碼:

        //創(chuàng)建與數(shù)據(jù)庫的連接

        string connString="Data Source=.;Initial Catalog=test;

        User Id=Admin;Pwd=admin";

        SqlConnection conn=new SqlConnection(connString);

        try

        { string sql="proc_InsertProduct";

        //打開數(shù)據(jù)庫連接

        conn.Open();

        //創(chuàng)建SqlCommand對象,并指定其類型是存儲過程

        SqlCommand command=new SqlCommand(sql, conn);

        command.CommandType=CommandType.StoredProcedure;

        //逐一添加輸入?yún)?shù),商品類別、商品名稱等

        command.Parameters.Add("@typeID", SqlDbType.Int);

        command.Parameters["@typeID"].Value

        =Convert.ToInt16(txtTypeID.Text);

        command.Parameters.Add("@goodsName",SqlDbType.VarChar);

        command.Parameters["@goodsName"].Value

        =txtgoodsName.Text;

        ……字段較多,此處不一一列出

        command.Parameters.Add("@remarks", SqlDbType.Text);

        command.Parameters["@remarks"].Value=txtremarks.Text;

        //可調(diào)用Sqlcommand的不同方法來執(zhí)行查詢或者是增、刪、改的動作

        command.ExecuteNonQuery();

        string message="";

        ……根據(jù)返回值判斷操作是否成功,此處略

        MessageBox.Show(message);

        }

        catch (Exception ex)

        { MessageBox.Show("系統(tǒng)發(fā)生錯誤");

        }

        finally

        { //關(guān)閉數(shù)據(jù)庫連接

        conn.Close();

        }

        4 結(jié)束語

        數(shù)據(jù)庫應用系統(tǒng)開發(fā)中,將易于變化或進行數(shù)據(jù)庫處理的功能用存儲過程編寫,可以給開發(fā)及后期的軟件維護帶來諸多方便。但是存儲過程的使用不當也會增加服務器的負擔,因此需要結(jié)合實際工作合理使用。筆者在網(wǎng)上商城系統(tǒng)的開發(fā)過程中充分利用了SQL Server存儲過程,不僅大大減少了程序開發(fā)的工作量,而且提高了系統(tǒng)的性能和穩(wěn)定性。

        參考文獻:

        [1] 李俊.基于Asp.net的B2C電子商務系統(tǒng)設計與實現(xiàn)[D].重慶大學碩士學位論文,2012.

        [2] 歐陽昉.網(wǎng)上商城購物系統(tǒng)研究與開發(fā)[D].電子科技大學碩士學位論文,2007.

        [3] 吳伶琳,楊正校.SQL Server 2005數(shù)據(jù)庫基礎[M].大連理工大學出版社,2010.

        [4] 李春芬,吳英斌.存儲過程在勘探設備管理系統(tǒng)中的應用[J].物探裝備,2011.21(5):327-330

        [5] 陳曉丹,王娟.存儲過程在信息發(fā)布系統(tǒng)中的研究與應用[J].武漢工程職業(yè)技術(shù)學院學報,2010.22(2):36-38

        [6] 張小波,成良玉.vs.net中存儲過程使用方法研究[J].計算機應用,2004.24(2):138-140

        猜你喜歡
        網(wǎng)上商城安全性
        新染料可提高電動汽車安全性
        某既有隔震建筑檢測與安全性鑒定
        山西省政府采購網(wǎng)上商城采購突破2億元
        山西財稅(2018年12期)2018-04-01 01:26:19
        60%網(wǎng)上商城成為服裝質(zhì)量問題的重災區(qū)
        CHIP新電腦(2016年8期)2016-08-25 12:58:35
        ApplePay橫空出世 安全性遭受質(zhì)疑 拿什么保護你,我的蘋果支付?
        家樂福網(wǎng)上商城進京
        中國連鎖(2016年5期)2016-05-14 13:37:44
        悅居商城
        Imagination發(fā)布可實現(xiàn)下一代SoC安全性的OmniShield技術(shù)
        丰满人妻一区二区乱码中文电影网 | 久久精品国产亚洲av蜜臀| 国产精品主播视频| 中文字幕日本韩国精品免费观看| 手机在线播放av网址| 97日日碰曰曰摸日日澡| 男女超爽视频免费播放| 蜜桃成人永久免费av大| 一道之本加勒比热东京| 狠狠人妻久久久久久综合蜜桃 | 人妻少妇粉嫩av专区一| 丰满人妻久久中文字幕| 特级做a爰片毛片免费看无码| 亚洲人成精品久久久久| 久久国产女同一区二区| 国产情侣一区二区三区| 国产男女猛烈视频在线观看| 国产精品视频免费的| 日本成人精品一区二区三区| 国产在热线精品视频| 国产精品乱码在线观看| 日本护士一区二区三区高清热线| 黄片视频大全在线免费播放| 久久99精品国产麻豆不卡| 欧美在线a| 亚洲伊人伊成久久人综合| 电影内射视频免费观看| 永久免费无码av在线网站 | 亚洲av色欲色欲www| 国产精品成人99一区无码| 99久久精品国产亚洲av天| 国产精品国产三级国产专播下| 亚洲国产精品ⅴa在线观看| 亚洲Av午夜精品a区| 日韩黄色大片免费网站| 国产精品亚洲色婷婷99久久精品| 欧美日韩不卡视频合集| 青青青伊人色综合久久| 日韩人妻另类中文字幕| 中出内射颜射骚妇| 国产 在线播放无码不卡|