計算機畢業(yè)設計 jsp校園二手物品交易網(wǎng)站sqlserver 畢設78-蕩公亂婦HD電影中文字幕-從頭啪到尾全肉的黃漫アイツが買ったゴムのサイズは
演示視頻:
https://www.bilibili.com/video/BV1a5411B7UH
第4章 詳細設計
3.1系統(tǒng)E-R圖
3.2 數(shù)據(jù)庫設計
4.2.1 S簡介S是一個基于關系型數(shù)據(jù)庫模型建立的數(shù)據(jù)庫管理系統(tǒng)軟件(DBMS)。它幫助用戶方使地得到所需信息,并提供強大的數(shù)據(jù)處理工具。它可以幫助用戶組織和共享數(shù)據(jù)庫信息,以便于根據(jù)數(shù)據(jù)庫信息作出有效的決策。另外,僅有這樣—個數(shù)據(jù)庫管理系統(tǒng)軟件(DBMS),則只能進行一些信息系統(tǒng)所需要的簡單數(shù)據(jù)處理,且對操作者有較高的操作技能要求。因此,信息系統(tǒng)的開發(fā)者都是在某種數(shù)據(jù)庫管理系統(tǒng)軟件〔DBMS〕環(huán)境下編寫相應的應川程序,以形成一個能夠滿足應用需求且操作盡可能簡單的應用型信息系統(tǒng),這被稱之為二次開發(fā)。
S 還具有以下特點:
1.使信息更易于查找和使用
S繼續(xù)為簡便地查找信息提供易于使用的工具。
2.支持 Web 功能的信息共享
S 可以通過企業(yè)內部網(wǎng)絡Internet 很簡便地實現(xiàn)信息共享,而且它可以很容易地將數(shù)據(jù)庫定位到瀏覽器中,它將桌面數(shù)據(jù)庫的功能和網(wǎng)站的功能結合在一起。
3.用于信息管理的強大解決方案
gaoji用戶和開發(fā)人員可以創(chuàng)建那些將S界面(客戶端)的易用性和SQL服務器的可擴展性和可靠性結合在一起的解決方案。
4.改變了數(shù)據(jù)庫窗口
可在S容納并顯示新的對象,增強了S 數(shù)據(jù)庫的易用性。
5.提供名稱自動更正功能
自動解決當用戶重新命名數(shù)據(jù)庫對象時出現(xiàn)的常見fumian效應。例如,當用戶重命名表中的字段時,將自動在諸如查詢的相關對象中進行相應的更改。
6.具有子數(shù)據(jù)表功能
子數(shù)據(jù)表在同一窗口中,提供了嵌套式的視圖,這樣就可以在同一窗口中專注于相關的數(shù)據(jù)并對其進行編輯。
7. 用戶只需簡單地將S對象(表、查詢等)從數(shù)據(jù)庫放到ODBC數(shù)據(jù)源中,即可從 S中將數(shù)據(jù)導出到其他數(shù)據(jù)庫中。
8.數(shù)據(jù)訪問頁功能
該功能可使用戶快捷方便地創(chuàng)建數(shù)掂 HTML頁,并通過數(shù)據(jù) HTML頁,將數(shù)據(jù)庫應用擴展到企業(yè)內部網(wǎng)絡 Internet上。這將幫助用戶比以往更快捷、高效的方式共享信息。
9.共享組件的集成
S利用新的 Web組件和位于瀏覽器中的 COM 控件,為用戶提供了多種查看和分析數(shù)據(jù)的方式。
10.交互性
S支持OLE DB,使用戶可以將S 界面的易用性與諸如SQL Server2000的后端企業(yè)數(shù)據(jù)庫的可升級性相結合。
4.2.3 數(shù)據(jù)庫連接技術JDBC技術是Java DataBase Connectivity的縮寫,它是SUN公司提供的一種支持基本SQL功能的通用的應用程序接口(Application Programming Interface)。它由一組用Java語言編寫的類和接口組成。通過這些類和接口,程序開發(fā)人員可以在Java語言中方便地建立與數(shù)據(jù)庫的鏈接,通過執(zhí)行相應SQL語句,完成對不同數(shù)據(jù)庫的訪問。因此,開發(fā)人員使用JDBC API可以不必編寫一個應用程序來訪問Sybase數(shù)據(jù)庫,又另外編寫一個應用程序去訪問Oracle數(shù)據(jù)庫,再寫一個應用程序訪問Microsoft的SQL Server。不但如此,使用Java語言編寫的應用程序可以在任何支持Java的平臺上運行,不必在不同的平臺上開發(fā)不同的應用程序。
簡單地說,JDBC能完成下列三件事:
同一個數(shù)據(jù)庫建立連接;
向數(shù)據(jù)庫建立連接;
處理數(shù)據(jù)庫返回的結果。
JDBC是一種通用低層的應用程序編程接口,它在不同的數(shù)據(jù)庫功能模塊的層次上提供一個統(tǒng)一的用戶界面。說JDBC是一處低級的API,是指它直接調用SQL命令,它比其他的一些數(shù)據(jù)庫連接API要容易使用些,但它有同樣可以作為更gaoji的,用戶辦面更友好的API或開發(fā)工具基礎。
很多可視化的Java開發(fā)工具,如Visual Age For Java、Visual Café、J++等都提供了基于JDBC的更面向用戶的類和包,直接將關系數(shù)據(jù)庫的表或視圖映射為Java類,程序員通過可視化工具直接對Java對象進行操作,而真正需要的SQL調用則根據(jù)程序員發(fā)出的對對象的各種屬性、方法的操作來自動產生。另一種使用JDBC API 的方式為,用戶程序可以提供一個界面(如菜單等)讓用戶選擇對數(shù)據(jù)庫進行的操作,選中一個任務后,提示用戶輸入一些必要的信息,然后根據(jù)用戶的輸入產生相應的SQL命令以及Java程序。通過這處方式,用戶可以完成對數(shù)據(jù)庫的操作,即使他并不了解SQL語法以及JDBC編程。
數(shù)據(jù)庫訪問的三層結構如圖3.1所示,瀏覽器端程序要訪問數(shù)據(jù)庫,首先通過中間件,然后由中間件對數(shù)據(jù)庫操作權限進行認證,認證通過才能對數(shù)據(jù)庫進行操作。
圖3.1 使用中間件的數(shù)據(jù)庫訪問三層結構
用戶對數(shù)據(jù)庫的存取權限認證是中間件中完成,對數(shù)據(jù)庫的查詢、插入、更新和shanchu操作等都封裝在中間件中,該中間件位于服務器端,中間件對數(shù)據(jù)庫進行操作后,再將處理結果通過Web服務器返回到瀏覽器端用戶。這樣,在用戶端輸入的用戶名和密碼,可以通過加密算法進行加密后在網(wǎng)絡上傳輸,在中間件中進行解密認證,然后再進行數(shù)據(jù)庫的存取操作,數(shù)據(jù)庫存取權限的用戶名和密碼出現(xiàn)在位于服務器端的中間件中,這樣就更加安全。本系統(tǒng)采用的正是這樣的三層結構的數(shù)據(jù)庫訪問模式。
在三層模型中,命令將被發(fā)送到服務的”中間層”,而”中間層”將SQL語句發(fā)送到數(shù)據(jù)庫。數(shù)據(jù)庫處理SQL語句并將結果返回”中間層”,然后”中間層”將它們返回用戶。其模型如圖3.2所示。
圖3.2 JDBC的三層模型
因為”中間層”可以進行對訪問的控制并協(xié)同數(shù)據(jù)庫的更新,并且可以使用一個易用的高層API,這個API可以由“中間層”進行轉換,轉換成低層的調用。所以在許多種情況下,三層模型可以提供更好的性能,本系統(tǒng)中所采用的就是此種模型。
JDBC是JAVA應用程序與數(shù)據(jù)庫的溝通橋梁。它提供了三項服務功能:一、與數(shù)據(jù)庫建立連接。二、將SQL語句傳遞給數(shù)據(jù)庫。三、從數(shù)據(jù)庫取得SQL語句的執(zhí)行結果。當JDBC要與數(shù)據(jù)庫建立連接前,首先,它必須先取得連接此數(shù)據(jù)庫的JDBC驅動程序,Class.forName()即是在執(zhí)行此項工作。建立數(shù)據(jù)庫連接的第一步驟就是將JDBC驅動程序的類載入至JVM(Java VirtualL Machine)中,本系統(tǒng)中利用java.lang.Class類內的forName()靜態(tài)函數(shù)依據(jù)指定的類名稱,將JDBC驅動程序載入進來。完成載入驅動程序的步驟后,必須使用java.sal.DriverManager類所提供的getConnection()靜態(tài)函數(shù),取得與數(shù)據(jù)庫間的連接對象。此連接對象的類類型為java.sal.Connection,必須通過它才能將SQL指令傳遞給數(shù)據(jù)庫,而執(zhí)行結果也需要通過連接對象來取得。當取得連接對象后,還必須取得Statement對象才能對數(shù)據(jù)庫執(zhí)行SQL指令。Statement主要實現(xiàn)兩個功能:執(zhí)行SQL語句以及取得執(zhí)行結果。在java.s的sql對象中執(zhí)行查詢或修改命令的函數(shù)后傳回的是一個ResultSet 對象,這個對象提供了一個存取SQL執(zhí)行結果的管道,以便通過它將表格數(shù)據(jù)從數(shù)據(jù)庫中取出。每個Statement對象只能產生一個ResultSet 對象。
數(shù)據(jù)庫連接如圖3.3所示:
圖3.3 數(shù)據(jù)庫的連接處理
數(shù)據(jù)庫的連接處理具體實現(xiàn)如下:
https://建立JDBC——ODBC橋
sun.jdbc.odbc.JdbcOdbcDriver;
https://橋建立不成功時的錯誤處理
catch(ClassNotFoundException event){}
https://建立與數(shù)據(jù)庫的連接,并發(fā)送SQL查詢語句,將結果保存到rs對象中
Con=建立JDBC——ODBC橋
Sql=SQL查詢語句
執(zhí)行查詢
Rs=返回結果
https://SQL出錯處理
catch(S e1){}
有了JDBC,向各種關系數(shù)據(jù)發(fā)送SQL語句就是一件很容易的事。換言之,有了JDBC API,就不必為訪問Sybase數(shù)據(jù)庫專門寫一個程序,為訪問Oracle數(shù)據(jù)庫又專門寫一個程序,或為訪問Informix數(shù)據(jù)庫又編寫另一個程序等等,程序員只需用JDBC API寫一個程序就夠了,它可向相應數(shù)據(jù)庫發(fā)送SQL調用。同時,將Java語言和JDBC結合起來使程序員不必為不同的平臺編寫不同的應用程序,只須寫一遍程序就可以讓它在任何平臺上運行,這也是Java語言“編寫一次,處處運行”的優(yōu)勢。
Java數(shù)據(jù)庫連接體系結構是用于Java應用程序連接數(shù)據(jù)庫的標準方法。JDBC對Java程序員而言是API,對實現(xiàn)與數(shù)據(jù)庫連接的服務提供商而言是接口模型。作為API,JDBC為程序開發(fā)提供標準的接口,并為數(shù)據(jù)庫廠商及第三方中間件廠商實現(xiàn)與數(shù)據(jù)庫的連接提供了標準方法。JDBC使用已有的SQL標準并支持與其它數(shù)據(jù)庫連接標準,如ODBC之間的橋接。JDBC實現(xiàn)了所有這些面向標準的目標并且具有簡單、嚴格類型定義且高性能實現(xiàn)的接口。
Java 具有堅固、安全、易于使用、易于理解和可從網(wǎng)絡上自動下載等特性,是編寫數(shù)據(jù)庫應用程序的杰出語言。所需要的只是 Java應用程序與各種不同數(shù)據(jù)庫之間進行對話的方法。而 JDBC 正是作為此種用途的機制。
JDBC 擴展了 Java 的功能。例如,用 Java 和 JDBC API 可以發(fā)布含有 applet 的網(wǎng)頁,而該 applet 使用的信息可能來自遠程數(shù)據(jù)庫企業(yè)也可以用 JDBC 通過 Intranet 將所有職員連到一個或多個內部數(shù)據(jù)庫中(即使這些職員所用的計算機有 Windows、 Macintosh 和UNIX 等各種不同的操作系統(tǒng))。隨著越來越多的程序員開始使用Java 編程語言,對從 Java 中便捷地訪問數(shù)據(jù)庫的要求也在日益增加。
MIS 管理員們都喜歡 Java 和 JDBC 的結合,因為它使信息傳播變得容易和經濟。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫,并能便捷地存取信息,即使這些信息是儲存在不同數(shù)據(jù)庫管理系統(tǒng)上。新程序的開發(fā)期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應用程序或只更新一次,然后將它放到服務器上,隨后任何人就都可得到Zui新版本的應用程序。對于商務上的銷售信息服務, Java 和JDBC 可為外部客戶提供獲取信息更新的更好方法。
簡單地說,JDBC 可做三件事:與數(shù)據(jù)庫建立連接、發(fā)送 SQL 語句并處理結果。下列代碼段給出了以上三步的基本示例:
上述代碼對基于JDBC的數(shù)據(jù)庫訪問做了經典的總結。
3.3 界面及代碼設計
4.3.1 用戶注冊游客可以進行注冊會員,注冊會員需要填寫用戶的用戶名、登陸密碼、真是姓名、性別、出生日期、籍貫、email、密碼提示問題、提示答案。界面如下圖所示:
4.3.2 商品查詢
用戶可以進行商品查詢操作,可以按商品名稱、商品類別、生產廠家進行查詢,界面如下圖所示:
4.3.3 用戶登陸
用于用戶登陸進入系統(tǒng)的界面,用戶需要建立一個賬號和密碼才能進入使用系統(tǒng),當用戶輸入自己的賬號和密碼時,系統(tǒng)進行驗證,如果正確,進入系統(tǒng);如果錯誤,則提示用戶輸入的信息不正確,重新輸入信息.該界面還為新用戶設置了專門的注冊鏈接,通過點擊注冊按鈕直接進入新用戶的注冊界面.在登陸的時候,密碼框采用密文形式輸入,保護用戶登陸的安全性。界面如下圖:
網(wǎng)站首頁以清新的色彩搭配設計,突出簡潔大方的效果。
4.3.5 管理員模塊設計
管理員登陸后可以對網(wǎng)站的所有信息進行管理,包括商品分類,商品信息,訂單信息,注冊會員等。
第5章 系統(tǒng)調試與測試
3.1 程序調試
在設計系統(tǒng)的過程中,存在一些錯誤是必然的。對于語句的語法錯誤,在程序運行時自動提示,并請求立即糾正,因此,這類錯誤比較容易發(fā)現(xiàn)和糾正。但另一類錯誤是在程序執(zhí)行時由于不正確的操作或對某些數(shù)據(jù)的計算公式的邏輯錯誤導致的錯誤結果。這類錯誤隱蔽性強,有時會出現(xiàn),有時又不出現(xiàn),因此,對這一類動態(tài)發(fā)生的錯誤的排查是耗時費力的。
3.2 程序的測試
5.2.1 測試的重要性及目的(1)測試的重要性
軟件的測試在軟件生命周期中占據(jù)重要的地位,在傳統(tǒng)的瀑布模型中,軟件測試學僅處于運行維護階段之前,是軟件產品交付用戶使用之前保證軟件質量的重要手段。近來,軟件工程界趨向于一種新的觀點,即認為軟件生命周期每一階段中都應包含測試,從而檢驗本階段的成果是否接近預期的目標,盡可能早的發(fā)現(xiàn)錯誤并加以修正,如果不在早期階段進行測試,錯誤的延時擴散常常會導致Zui后成品測試的巨大困難。
事實上,對于軟件來講,不論采用什么技術和什么方法,軟件中仍然會有錯。采用新的語言、先進的開發(fā)方式、完善的開發(fā)過程,可以減少錯誤的引入,但是不可能完全杜絕軟件中的錯誤,這些引入的錯誤需要測試來找出,軟件中的錯誤密度也需要測試來進行估計。測試是所有工程學科的基本組成單元,是軟件開發(fā)的重要部分。自有程序設計的那天起測試就一直伴隨著。統(tǒng)計表明,在典型的軟件開發(fā)項目中,軟件測試工作量往往占軟件開發(fā)總工作量的40%以上。而在軟件開發(fā)的總成本中,用在測試上的開銷要占30%到50%。如果把維護階段也考慮在內,討論整個軟件生存期時,測試的成本比例也許會有所降低,但實際上維護工作相當于二次開發(fā),乃至多次開發(fā),其中必定還包含有許多測試工作。
在實踐中,軟件測試的困難常常使人望而卻步或敷衍了事,這是由于對測試仍然存在一些不正確的看法和錯誤的態(tài)度,這包括:
① 認為測試工作不如設計和編碼那樣容易取得進展難以給測試人員某種成就感;
② 以發(fā)現(xiàn)軟件錯誤為目標的測試是非建設性的,甚至是破壞性的,測試中發(fā)現(xiàn)錯位是對責任者工作的一種否定;
③ 測試工作枯燥無味,不能引起人們的興趣;
④ 測試工作是艱苦而細致的工作;
⑤ 對自己編寫的程序盲目自信,在發(fā)現(xiàn)錯誤后,顧慮別人對自己的開發(fā)能力的看法。
這些觀點對軟件測試工作是極為不利的,必須澄清認識、端正態(tài)度,才可能提高軟件產品的質量。
(2)測試的目的
如果測試的目的是為了盡可能多地找出錯誤,那么測試就應該直接針對軟件比較復雜的部分或是以前出錯比較多的位置。
① 軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;
② 測試是為了證明程序有錯,而不是證明程序無錯誤;
③ 一個好的測試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;
④ 一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。
這種觀點可以提醒人們測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。但是僅憑字面意思理解這一觀點可能會產生誤導,認為發(fā)現(xiàn)錯誤是軟件測試的唯一目,查找不出錯誤的測試就是沒有價值的,事實并非如此。
首先,測試并不僅僅是為了要找出錯誤。通過分析錯誤產生的原因和錯誤的分布特征,可以幫助項目管理者發(fā)現(xiàn)當前所采用的軟件過程的缺陷,以便改進。同時,這種分析也能幫助我們設計出有針對性地檢測方法,改善測試的有效性。其次,沒有發(fā)現(xiàn)錯誤的測試也是有價值的,完整的測試是評定測試質量的一種方法。
5.2.2 測試的步驟與開發(fā)過程類似,測試過程也必須分步驟進行,每個步驟在邏輯上是前一個步驟的繼續(xù)。大型軟件系統(tǒng)通常由若干個子系統(tǒng)組成,每個子系統(tǒng)又由若干個模塊組成。因此,大型軟件系統(tǒng)的測試基本上由下述幾個步驟組成:
(1)模塊測試 在這個測試步驟中所發(fā)現(xiàn)的往往是編碼和詳細設計的錯誤。
(2)系統(tǒng)測試 在這個測試步驟中發(fā)現(xiàn)的往往是軟件設計中的錯誤,也可能發(fā)現(xiàn)需求說明中的錯誤。
(3)驗收測試 在這個測試步驟中發(fā)現(xiàn)的往往是系統(tǒng)需求說明書中的錯誤。
5.2.3 測試的主要內容為了保證測試的質量,將測試過程分成幾個階段,即:代碼審查、單元測試、集成測試、確認測試和系統(tǒng)測試。
(1)單元測試
單元測試集中在檢查軟件設計的Zui小單位—模塊上,通過測試發(fā)現(xiàn)實現(xiàn)該模塊的實際功能與定義該模塊的功能說明不符合的情況,以及編碼的錯誤。
(2)集成測試
集成測試是將模塊按照設計要求組裝起來同時進行測試,主要目標是發(fā)現(xiàn)與接口有關的問題。如一個模塊與另一個模塊可能有由于疏忽的問題而造成有害影響;把子功能組合起來可能不產生預期的主功能;個別看起來是可以接受的誤差可能積累到不能接受的程度;全程數(shù)據(jù)結構可能有錯誤等。
(3)確認測試
確認測試的目的是向未來的用戶表明系統(tǒng)能夠像預定要求那樣工作。經集成測試后,已經按照設計把所有的模塊組裝成一個完整的軟件系統(tǒng),接口錯誤也已經基本排除了,接著就應該進一步驗證軟件的有效性,這就是確認測試的任務,即軟件的功能和性能如同用戶所合理期待的那樣。
(4)系統(tǒng)測試
軟件開發(fā)完成以后,Zui終還要與系統(tǒng)中其他部分配套運行,進行系統(tǒng)測試。包括恢復測試、安全測試、強度測試和性能測試等。
單獨對系統(tǒng)的測試主要從以下幾方面入手:
① 功能測試:測試是否滿足開發(fā)要求,是否提供設計所描述的功能,是否用戶的需求都得到滿足。功能測試是系統(tǒng)測試Zui常用和必須的測試,通常還會以正式的軟件說明書為測試標準。
② 強度測試及性能測試:測試系統(tǒng)能力Zui高實際限度,即軟件在一些超負荷情況下功能實現(xiàn)的情況。
③ 安全測試:驗證安裝在系統(tǒng)內的保護機構確實能夠對系統(tǒng)進行保護,使之不受各種非常的干擾。針對本系統(tǒng)主要是對權限系統(tǒng)的測試和對無效數(shù)據(jù)、錯數(shù)據(jù)、和非法數(shù)據(jù)干擾的能力的測試。
經過上述的測試過程對本系統(tǒng)進行測試后,系統(tǒng)基本滿足開發(fā)的要求,測試宣告結束。