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

正文內(nèi)容

jsp網(wǎng)上書(shū)店系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)畢業(yè)論文(編輯修改稿)

2025-07-21 00:42 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 圖。用戶登錄在線購(gòu)書(shū)察看圖書(shū)詳細(xì)購(gòu)買圖書(shū)查詢察看訂單信息查看購(gòu)物車在線購(gòu)書(shū)購(gòu)買察看圖書(shū)詳細(xì)資料購(gòu)買查看訂單詳細(xì)繼續(xù)購(gòu)書(shū)清空購(gòu)物車提交購(gòu)物車刪除已經(jīng)選購(gòu)的圖書(shū)修改購(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ì)一般在線書(shū)店的需求,得出如下需求信息。167。 用戶分為游客和已注冊(cè)用戶。167。 訂單分為單張?jiān)敿?xì)訂單和總訂單。167。 一個(gè)用戶可以購(gòu)買多本圖書(shū)。167。 一個(gè)用戶對(duì)應(yīng)一張訂單。167。 一個(gè)列表對(duì)應(yīng)多張訂單。針對(duì)本系統(tǒng)功能分析,總結(jié)出如下的需求信息。167。 用戶,包括數(shù)據(jù)項(xiàng):用戶ID、用戶名、密碼。167。 圖書(shū),包括數(shù)據(jù)項(xiàng):圖書(shū)編號(hào)、圖書(shū)名、價(jià)格、圖書(shū)介紹。167。 訂單列表,包括數(shù)據(jù)項(xiàng):訂單編號(hào)、圖書(shū)編號(hào)、購(gòu)書(shū)數(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í)體。實(shí)體之間關(guān)系的ER圖如圖33所示。購(gòu)書(shū)用戶訂單列表訂單圖書(shū) 1 N M N 1 L N圖33用戶信息實(shí)體的ER圖如圖34所示。圖書(shū)實(shí)體的ER圖如圖35所示。訂單實(shí)體的ER圖如圖36所示。訂單列表實(shí)體的ER圖如圖37所示。 數(shù)據(jù)庫(kù)邏輯機(jī)構(gòu)設(shè)計(jì)在線書(shū)店數(shù)據(jù)庫(kù)中各個(gè)表的設(shè)計(jì)結(jié)果如下面的標(biāo)和所示。表38為圖書(shū)信息列表。表38表39為用戶信息列表。表39表310為訂單總表,記錄某個(gè)用戶的訂單信息。表310表311為訂單表,記錄但張訂單的具體信息。表311第四章 詳細(xì)設(shè)計(jì) 系統(tǒng)概述 我設(shè)計(jì)的這個(gè)系統(tǒng)是一個(gè)由JSP實(shí)現(xiàn)的網(wǎng)上購(gòu)書(shū)系統(tǒng)。它實(shí)現(xiàn)了基本的登錄驗(yàn)證、查詢商品、分頁(yè)處理、購(gòu)物車處理以及訂單處理功能,其主要界面見(jiàn)圖41:圖41 系統(tǒng)主要文件 這個(gè)購(gòu)書(shū)系統(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)的,外界不可訪問(wèn) 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)書(shū)系統(tǒng),但考慮到系統(tǒng)的可擴(kuò)展性,我把書(shū)當(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)))。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1