freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

信息系統(tǒng)分析與設(shè)計(jì)的課程設(shè)計(jì)基于jsp技術(shù)的網(wǎng)上書店(編輯修改稿)

2025-02-14 14:13 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 操作系統(tǒng)需要安裝的J2SDK TomcatWindows 98J2sdk1_4_1_01 Tomcat Windows NT ServerJ2sdk1_4_1_01 Tomcat Windows 2000J2sdk1_4_1_01 Tomcat Windows XPJ2sdk1_4_1_01 Tomcat 4 系統(tǒng)設(shè)計(jì) 系統(tǒng)設(shè)計(jì)思想本系統(tǒng)采用三層架構(gòu)設(shè)計(jì),它的工作原理如圖31所示。圖31采用三層構(gòu)架以后,用戶界面層通過(guò)統(tǒng)一的接口向業(yè)務(wù)層發(fā)送請(qǐng)求,業(yè)務(wù)層按自己的邏輯規(guī)則將請(qǐng)求處理之后進(jìn)行數(shù)據(jù)庫(kù)操作,然后將數(shù)據(jù)庫(kù)返回的數(shù)據(jù)封裝成類的形式返回給用戶界面層。這樣用戶界面層甚至可以不知道數(shù)據(jù)庫(kù)的結(jié)構(gòu),它只要維護(hù)與業(yè)務(wù)層之間的接口即可。 系統(tǒng)功能模塊化如圖32為本系統(tǒng)的功能模塊圖。用戶登錄在線購(gòu)書察看圖書詳細(xì)購(gòu)買圖書查詢察看訂單信息查看購(gòu)物車在線購(gòu)書購(gòu)買察看圖書詳細(xì)資料購(gòu)買查看訂單詳細(xì)繼續(xù)購(gòu)書清空購(gòu)物車提交購(gòu)物車刪除已經(jīng)選購(gòu)的圖書修改購(gòu)買數(shù)量圖32 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)在一個(gè)信息管理系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的好壞將直接對(duì)應(yīng)用系統(tǒng)的效率,以及實(shí)現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)可以提高數(shù)據(jù)存儲(chǔ)的效率,保證數(shù)據(jù)的完整和一致。 數(shù)據(jù)庫(kù)需求分析針對(duì)一般在線書店的需求,得出如下需求信息。167。 用戶分為游客和已注冊(cè)用戶。167。 訂單分為單張?jiān)敿?xì)訂單和總訂單。167。 一個(gè)用戶可以購(gòu)買多本圖書。167。 一個(gè)用戶對(duì)應(yīng)一張訂單。167。 一個(gè)列表對(duì)應(yīng)多張訂單。針對(duì)本系統(tǒng)功能分析,總結(jié)出如下的需求信息。167。 用戶,包括數(shù)據(jù)項(xiàng):用戶ID、用戶名、密碼。167。 圖書,包括數(shù)據(jù)項(xiàng):圖書編號(hào)、圖書名、價(jià)格、圖書介紹。167。 訂單列表,包括數(shù)據(jù)項(xiàng):訂單編號(hào)、圖書編號(hào)、購(gòu)書數(shù)量。167。 訂單,包括數(shù)據(jù)項(xiàng):訂單編號(hào)、用戶編號(hào)、下單時(shí)間。 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)從本系統(tǒng)中規(guī)劃出的實(shí)體有:用戶實(shí)體、圖書實(shí)體、訂單實(shí)體、訂單列表實(shí)體。實(shí)體之間關(guān)系的ER圖如圖33所示。購(gòu)書用戶訂單列表訂單圖書 1 N M N 1 L N圖33用戶信息實(shí)體的ER圖如圖34所示。圖書實(shí)體的ER圖如圖35所示。訂單實(shí)體的ER圖如圖36所示。訂單列表實(shí)體的ER圖如圖37所示。 數(shù)據(jù)庫(kù)邏輯機(jī)構(gòu)設(shè)計(jì)在線書店數(shù)據(jù)庫(kù)中各個(gè)表的設(shè)計(jì)結(jié)果如下面的標(biāo)和所示。表38為圖書信息列表。表38表39為用戶信息列表。表39表310為訂單總表,記錄某個(gè)用戶的訂單信息。表310表311為訂單表,記錄但張訂單的具體信息。表3115 詳細(xì)設(shè)計(jì) 系統(tǒng)概述我設(shè)計(jì)的這個(gè)系統(tǒng)是一個(gè)由JSP實(shí)現(xiàn)的網(wǎng)上購(gòu)書系統(tǒng)。它實(shí)現(xiàn)了基本的登錄驗(yàn)證、查詢圖書、分頁(yè)處理、購(gòu)物車處理以及訂單處理功能,其主要界面見圖41:圖41 系統(tǒng)主要文件這個(gè)購(gòu)書系統(tǒng)主要有2類文件,一類是Bean文件,我把它們統(tǒng)一放在了cart文件夾里,\mon\classes\cart下,(這是tomcat要求的默認(rèn)存放Bean的路徑);另一類是jsp文件,\webapps\ROOT。(這是tomcat的默認(rèn)工作環(huán)境)Bean文件:, ,Jsp文 件: 詳細(xì)代碼及說(shuō)明 1)用戶作為實(shí)體,我把他的id, 姓名,密碼作為其屬性在Bean里面做了定義,它們都是和數(shù)據(jù)庫(kù)里的user表相對(duì)應(yīng)的,外界不可訪問 private String id。 private String userName。 private String userPassword。 2)構(gòu)造函數(shù)里做了2件事情,第一:尋找數(shù)據(jù)庫(kù)連接驅(qū)動(dòng);第二:對(duì)上面的3個(gè)私有成員初始化:public static String sDBDriver = 。public static String sConnStr = jdbc:odbc:cart。public static Connection conn = null。public UserEntity(String id,String userName,String userPassword) { try { (sDBDriver)。 // } catch( e) { (UserEntity: + ())。 } =id。 =userName。 =userPassword。 } 根據(jù)上面對(duì)變量sDBDriver ,sConnStr的定義和初始化可以看出,我在連接數(shù)據(jù)庫(kù)的時(shí)候采用的是jdbcodbc橋的方式,這種方式采用的驅(qū)動(dòng)是JDK自帶的,不需要另外安裝。但是,為了與特定的數(shù)據(jù)庫(kù)連接,我們必須建立一個(gè)數(shù)據(jù)源:cart。給3個(gè)屬性賦值,我利用了this指針。 3)這個(gè)類我封裝了2類方法:一是查找特定用戶名的所有記錄,代碼如下: public static UserEntity queryUser(String userName) throws SQLException { try { (sDBDriver)。 } catch( e) { (UserEntity: + ())。 } //query from database String sql=select id,user_name,user_password from user where user_name= ? 。 ResultSet rs = null。 try { conn = (sConnStr)。 PreparedStatement prepStmt = (sql)。 (1,userName)。 rs = ()。 } catch(SQLException ex) { (OrderItemEntity executeQuery: + ())。 } UserEntity user=null。 if(()) user=new UserEntity((1),(2),(3))。 return user。 } 這個(gè)函數(shù)有1個(gè)參數(shù),String userName,就是通過(guò)這個(gè)用戶名在user表里查詢相應(yīng)的用戶的。要查詢數(shù)據(jù)庫(kù)里user表,就必須先連接數(shù)據(jù)庫(kù)。連接數(shù)據(jù)庫(kù)第一步是加載驅(qū)動(dòng),之后就是進(jìn)行連接。我采用DriverManager類的getConnection方法來(lái)建立與cart數(shù)據(jù)源的連接,連接成功后,其實(shí)就是對(duì)uesr進(jìn)行查詢操作。PreparedStatement對(duì)象就是用于查詢語(yǔ)句的執(zhí)行,它是Statement的子類,與Statement不同的地方,PreparedStatement對(duì)象可以接受參數(shù),這里需要接受的參數(shù)是user_name,然后進(jìn)行預(yù)編譯。在每一次執(zhí)行這個(gè)查詢,都可以給sql語(yǔ)句傳輸不同的user_name,這樣大大提高了靈活性。要想查詢后的結(jié)果最后顯示給用戶,必須對(duì)ResultSet對(duì)象進(jìn)行操作,即對(duì)rs進(jìn)行操作。我在程序里是把該記錄賦給一個(gè)UserEntity對(duì)象。 該類封裝的另一種方法是:用戶名和密碼的獲得。這個(gè)主要是為了方便后面驗(yàn)證用戶合法性使用 public String getUserName() { return userName。 } public String getUserPassword() { return userPassword。 } 雖然我做的是一個(gè)購(gòu)書系統(tǒng),但考慮到系統(tǒng)的可擴(kuò)展性,我把書當(dāng)作一種圖書來(lái)進(jìn)行定義。同樣,參照數(shù)據(jù)庫(kù)里的product表,我給圖書這個(gè)類定義了如下4個(gè)屬性,圖書id,圖書名稱,圖書價(jià)格,圖書note,其類型同樣是該類的私有屬性: private String id。 private String productName。 private String productPrice。 private String productNote。1) 其構(gòu)造函數(shù)和用戶實(shí)體類基本上一致,所以代碼及其說(shuō)明我在這里就省略了。2) 對(duì)圖書的操作也主要是2類,一類是對(duì)特定圖書的查詢,其原理和查詢用戶是一樣的,但是有一點(diǎn)小小的區(qū)別,即查詢圖書可以使查詢所有的圖書,或者是查詢特定id的圖書,我通過(guò)以下代碼把這2種查詢合在了queryProduct這個(gè)函數(shù)里:String sql=select id,product_name,product_price,product_note from product 。 if(()!=0) sql=sql+ where id = ? 。 Vector v=new Vector()。 ResultSet rs = null。 其關(guān)于連接數(shù)據(jù)庫(kù),查詢記錄的代碼和上面的大致雷同,所以在這里就省略了。顯示圖書是分頁(yè)顯示的,其代碼如下: while(()) { ++i。 if(ipageCount*pageSize) { if(i=(pageCount+1)*pageSize) (new ProductEntity((1),(2),(3),(4)))。 else break。 } }這一段代碼的主要功能是:每一頁(yè)最多顯示pageSize個(gè)圖書,如果超過(guò)pageSize個(gè),就分頁(yè)顯示。PageSize在后面將會(huì)定義,其值我設(shè)置為10。3) 第二類方法是查詢圖書的id,全稱,價(jià)格和note. 例如查找圖書的ID: public String getProductId() { return id。 } 實(shí)現(xiàn)訂購(gòu)單實(shí)體的Bean 客戶每次購(gòu)買一種圖書都會(huì)產(chǎn)生一次訂購(gòu)單,它包括訂單號(hào),所購(gòu)買的書號(hào),所購(gòu)買這種書的數(shù)量,這些構(gòu)成了這個(gè)類的私有屬性: private String id。 private Strin
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1