




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上書店管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)書籍銷售管理模塊學(xué)生姓名: 指導(dǎo)老師:摘 要 本課程設(shè)計(jì)主要解決書店的管理問題,設(shè)計(jì)開發(fā)一個(gè)簡(jiǎn)單的書店管理系統(tǒng) ,實(shí)現(xiàn)分類登陸,書籍管理,倉(cāng)庫(kù)庫(kù)存管理,會(huì)員管理以及各種查詢等功能。在課程設(shè)計(jì)中,系統(tǒng)開發(fā)平臺(tái)為Windows 7,程序設(shè)計(jì)語(yǔ)言采用Java,數(shù)據(jù)庫(kù)采用Oracle Database 11g Express Edition,程序運(yùn)行平臺(tái)為Windows 7。程序通過調(diào)試運(yùn)行,初步實(shí)現(xiàn)了設(shè)計(jì)目標(biāo),并且經(jīng)過適當(dāng)完善后,將可以應(yīng)用在普通書店的管理中,解決實(shí)際問題。關(guān)鍵詞 書店管理系統(tǒng);數(shù)據(jù)庫(kù);Java目 錄1 引言11.1課題背景11.2課
2、程設(shè)計(jì)目的11.3課程設(shè)計(jì)任務(wù)22 系統(tǒng)結(jié)構(gòu)分析32.1需求分析32.2 功能模塊圖43 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)63.1 概念結(jié)構(gòu)設(shè)計(jì)63.2邏輯結(jié)構(gòu)設(shè)計(jì)73.3數(shù)據(jù)庫(kù)表的建立84 系統(tǒng)實(shí)現(xiàn)94.1 數(shù)據(jù)庫(kù)的連接94.2 系統(tǒng)功能模塊設(shè)置105 系統(tǒng)測(cè)試方案和測(cè)試報(bào)告125.1測(cè)試方案125.2測(cè)試過程126 結(jié)束語(yǔ)17參考文獻(xiàn)18附錄:部分程序代碼19專心-專注-專業(yè)1 引言1.1課題背景隨著科學(xué)技術(shù)的不斷發(fā)展,電子技術(shù)悄無聲息地走進(jìn)了我們生活的各個(gè)角落,無時(shí)無刻的不在影響和改善著我們生活的各個(gè)方面。同時(shí),越來越多的人開始意識(shí)到計(jì)算機(jī)技術(shù)在日常生活中所起到的重大作用。如今,隨著書店規(guī)模的不斷擴(kuò)大,書
3、籍種類和數(shù)量的不斷增加,使得人工管理模式的局限性越發(fā)突出。因此,利用計(jì)算機(jī)技術(shù)來優(yōu)化書店管理具有重大的實(shí)際意義。計(jì)算機(jī)信息管理技術(shù)的應(yīng)用,除了能在相當(dāng)大的程度上代替人工作業(yè),從而減少人員工作量,減輕工作負(fù)擔(dān),減少工作中因人為原因而產(chǎn)生的錯(cuò)誤從而避免不必要的損失外,更重要的是能建立準(zhǔn)確暢通、簡(jiǎn)便的信息流通渠道,為工作提供所需要的準(zhǔn)確、及時(shí)的信息以幫助做出正確而及時(shí)的選擇與決定,從而給采用這門技術(shù)的單位帶來了巨大的可見或不可見的利益與效益。1.2課程設(shè)計(jì)目的一個(gè)業(yè)績(jī)好的書店每天都會(huì)銷售出大量書籍,使用書店信息管理系統(tǒng)可以大大提高工作效率,減少工作中不必要的失誤。與此同時(shí),通過書店管理系統(tǒng),我們可以
4、知曉書籍的銷售情況,從而進(jìn)一步總結(jié)出哪些書籍最為暢銷,而哪些書籍鮮有人問津,通過對(duì)銷售狀況的總結(jié),我們就能夠知道需要大量購(gòu)進(jìn)哪些書籍,以便獲得更大的經(jīng)濟(jì)效益。而且,通過書店管理系統(tǒng),我們可以對(duì)一些常來書店購(gòu)書的客戶實(shí)行適當(dāng)?shù)臅?huì)員優(yōu)惠,以留住一部分客戶群體進(jìn)行長(zhǎng)期的合作,這樣書店就能獲取相當(dāng)可觀的經(jīng)濟(jì)效益。本論文旨在論述書店管理系統(tǒng)的設(shè)計(jì)與開發(fā)。通過書店管理系統(tǒng)的設(shè)計(jì),熟練掌握J(rèn)ava、Oracle Database 10g Express Edition等工具軟件,系統(tǒng)地掌握需求分析、數(shù)據(jù)庫(kù)設(shè)計(jì)、編碼實(shí)現(xiàn)、測(cè)試等軟件開發(fā)的流程,提高自身分析問題、解決問題的能力。1.3課程設(shè)計(jì)任務(wù)本課程設(shè)計(jì)任務(wù)
5、是通過開發(fā)一個(gè)數(shù)據(jù)庫(kù)書店管理系統(tǒng),學(xué)習(xí)數(shù)據(jù)庫(kù)系統(tǒng)的設(shè)計(jì)與開發(fā),采用JAVA和Oracle Database 11g Express Edition等軟件為開發(fā)工具。通過對(duì)計(jì)算機(jī)硬件和軟件解決方案的論證,對(duì)應(yīng)用領(lǐng)域進(jìn)行調(diào)查分析,參考各種資料和進(jìn)行數(shù)據(jù)庫(kù)系統(tǒng)開發(fā)實(shí)踐。在指導(dǎo)老師的幫助下,已經(jīng)基本上成功地實(shí)現(xiàn)了設(shè)計(jì)任務(wù)書的要求,使得設(shè)計(jì)的數(shù)據(jù)庫(kù)系統(tǒng)能夠?qū)崿F(xiàn)一般數(shù)據(jù)庫(kù)的管理。2 系統(tǒng)結(jié)構(gòu)分析2.1需求分析書店管理系統(tǒng)是適應(yīng)時(shí)代發(fā)展的需要,提高管理的效率而開發(fā)設(shè)計(jì)的。通過對(duì)信息的收集、存儲(chǔ)、傳遞、統(tǒng)計(jì)、分析、綜合查詢、報(bào)表輸出和信息共享,及時(shí)為書店管理人員提供全面、準(zhǔn)確的各種數(shù)據(jù)。實(shí)現(xiàn)了書店管理的簡(jiǎn)單化
6、和規(guī)劃化,提高了書店的工作效率,從而使書店能夠以少的投入獲得更好的社會(huì)效益與經(jīng)濟(jì)效益。經(jīng)過綜合分析,確定了書店管理系統(tǒng)的主要包括以下功能:(1). 書籍信息管理功能系統(tǒng)設(shè)置包括書籍編號(hào)設(shè)置、書籍名稱設(shè)置、書籍作者設(shè)置、出版社設(shè)置、書籍進(jìn)價(jià)、書籍售價(jià)和書籍?dāng)?shù)量。基本信息管理模塊可以實(shí)現(xiàn)添加和重置書籍信息功能:。(2). 會(huì)員信息管理功能系統(tǒng)設(shè)置包括會(huì)員編號(hào)設(shè)置、會(huì)員姓名設(shè)置、會(huì)員等級(jí)設(shè)置、會(huì)員折扣設(shè)置和會(huì)員累計(jì)消費(fèi)。基本信息管理模塊可以實(shí)現(xiàn)查詢和刪除會(huì)員信息功能。(3). 賬單信息管理功能 系統(tǒng)設(shè)置包括會(huì)員姓名設(shè)置和當(dāng)前消費(fèi)金額設(shè)置。通過此模塊能基本實(shí)現(xiàn)修改會(huì)員信息功能。2.2 功能模塊圖1.
7、根據(jù)上述的功能,可以設(shè)計(jì)出系統(tǒng)的總體功能模塊,如圖2.1所示。會(huì)員信息管理書店管理系統(tǒng)賬單信息管理書籍信息管理圖2.1 書店管理系統(tǒng)功能模塊示意圖2.“書籍信息管理”功能模塊用于書籍編號(hào)設(shè)置、書籍名稱設(shè)置、書籍作者設(shè)置、出版社設(shè)置、書籍進(jìn)價(jià)、書籍售價(jià)和書籍?dāng)?shù)量,其功能模塊如圖2.2所示。書籍信息管理書籍編號(hào)管理書籍?dāng)?shù)量管理出版社管理書籍進(jìn)價(jià)管理書籍名稱管理書籍作者管理書籍售價(jià)管理圖2.2 書籍管理信息設(shè)置3 “會(huì)員信息管理”功能模塊用于會(huì)員編號(hào)設(shè)置、會(huì)員姓名設(shè)置、會(huì)員等級(jí)設(shè)置、會(huì)員折扣設(shè)置和累計(jì)消費(fèi)設(shè)置,其功能模塊如圖2.3所示。會(huì)員信息設(shè)置會(huì)員編號(hào)管理會(huì)員等級(jí)管理會(huì)員折扣管理會(huì)員姓名管理累計(jì)
8、消費(fèi)管理 圖2.3 會(huì)員信息管理4 “賬單信息管理”功能模塊用于會(huì)員姓名設(shè)置和當(dāng)前消費(fèi)金額設(shè)置,其功能模塊如圖2.4所示。會(huì)員姓名管理當(dāng)前消費(fèi)金額管理賬單信息管理 圖2.4 賬單信息管理3 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)3.1 概念結(jié)構(gòu)設(shè)計(jì)根據(jù)需求分析抽象出信息結(jié)構(gòu),可得該系統(tǒng)的E-R圖。(1)書籍管理E-R圖,如圖3.1所示。售價(jià)進(jìn)價(jià)出版社作者名稱編號(hào)書籍?dāng)?shù)量圖3.1 書籍管理E-R圖(2)會(huì)員管理E-R圖,如圖3.2所示。會(huì)員姓名等級(jí)折扣編號(hào)消費(fèi)圖3.2 會(huì)員管理E-R圖(3)賬單管理E-R圖,如圖3.3所示。當(dāng)前消費(fèi)賬單會(huì)員姓名圖3.3 賬單管理E-R圖3.2邏輯結(jié)構(gòu)設(shè)計(jì)根據(jù)上述的概念結(jié)構(gòu)設(shè)計(jì)出邏輯結(jié)構(gòu)
9、,將E-R圖轉(zhuǎn)換為關(guān)系模型。數(shù)據(jù)庫(kù)Book包含以下5個(gè)表:書籍信息表book、會(huì)員信息表member 、賬單信息表bill。(1) 書籍信息表book 訂單信息表book用來保存書籍編號(hào)、書籍名稱、書籍作者、書籍出版社、書籍進(jìn)價(jià)、書籍售價(jià)和數(shù)量等信息。表book 的結(jié)構(gòu)如表3-1所示。 表3-1 表book的結(jié)構(gòu)編號(hào)字段名稱數(shù)據(jù)結(jié)構(gòu)說明1Book_idVarchar2(10)記錄書籍編號(hào)2Book_nameVarchar2(20)記錄書籍名稱3Book_authorVarchar2(20)記錄書籍作者4Book_pressVarchar2(20)記錄出版社5Book_sale_priceNum
10、ber(10)記錄書籍售價(jià)6Book_purchase_priceNumber(10)記錄書籍進(jìn)價(jià)7Book_amountNumber(10)記錄書籍庫(kù)存數(shù)量 通過對(duì)上面表的分析,查找等操作,所有模式都符合3NF。前面是通過前臺(tái)來實(shí)現(xiàn)系統(tǒng)安全性的,我們也可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行身份驗(yàn)證,可以從服務(wù)器角度建一個(gè)登錄名,使得不同的服務(wù)器角色擁有不同的權(quán)限,從而實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的不同權(quán)限的管理,以此來增強(qiáng)書店管理系統(tǒng)的安全性。3.3數(shù)據(jù)庫(kù)表的建立在設(shè)計(jì)數(shù)據(jù)庫(kù)表結(jié)構(gòu)之前,首先要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)庫(kù)。本系統(tǒng)使用的數(shù)據(jù)庫(kù)為Book??梢栽谄髽I(yè)管理器中創(chuàng)建數(shù)據(jù)庫(kù),也可以在查詢分析器中執(zhí)行以下TransactSQl語(yǔ)句:(1)
11、 創(chuàng)建表Book CREATE TABLE BOOK (BOOK_ID NUMBER(10), BOOK_NAME VARCHAR2(20), BOOK_AUTHOR VARCHAR2(20), BOOK_PRESS VARCHAR2(20), BOOK_SALE_PRICE NUMBER(10), BOOK_AMOUNT NUMBER(10), BOOK_PURCHASE_PRICE NUMBER(10) ) (2) 創(chuàng)建表Bookid CREATE TABLE BOOKID (BOOK_ID NUMBER(10) )(3) 創(chuàng)建表memberCREATE TABLE MEMBER (MEM
12、BER_ID NUMBER(10) NOT NULL ENABLE, MEMBER_NAME VARCHAR2(20) NOT NULL ENABLE, MEMBER_LEVEL NUMBER(20) NOT NULL ENABLE, MEMBER_REBATE FLOAT(2) DEFAULT 0.9 NOT NULL ENABLE, MEMBER_CONSUMPTION FLOAT(126) NOT NULL ENABLE )(4) 創(chuàng)建表bill CREATE TABLE BILL (MEMBER_NAME VARCHAR2(10), MONEY NUMBER(10) )4 系統(tǒng)實(shí)現(xiàn)4.
13、1 數(shù)據(jù)庫(kù)的連接在該系統(tǒng)中使用的數(shù)據(jù)庫(kù)是Oracle Database 11g Express Edition??蛻舳瞬捎玫氖荘L/SQL Developer。Java運(yùn)行環(huán)境為Eclipse Indigo。在安裝好了軟件之后,數(shù)據(jù)庫(kù)的連接設(shè)置在Eclipse里的Properties功能鍵中。 如圖4.1所示圖4.1 數(shù)據(jù)庫(kù)連接在Java Build Path中的Libraries中,運(yùn)行Add External JARs找到classes12.jar并添加,則此時(shí)已將數(shù)據(jù)庫(kù)和Java程序成功連接。 4.2 系統(tǒng)功能模塊設(shè)置(1) 設(shè)計(jì)書籍銷售管理界面書籍銷售管理界面可以用來查詢書籍、將選定書
14、籍加入購(gòu)買目錄和賬單結(jié)算。創(chuàng)建一個(gè)選項(xiàng)卡面板,將其命名為OprationInfoPanel。選項(xiàng)卡面板的布局如圖4.2所示。圖4.2 面板OprationInfoPanel的布局面板啟動(dòng),當(dāng)你點(diǎn)擊查找功能鍵時(shí),則會(huì)出現(xiàn)要查詢的書籍信息,此時(shí)你可以實(shí)現(xiàn)將選定書籍加入購(gòu)買目錄。當(dāng)用戶單擊“查詢”按鈕時(shí),將執(zhí)行findDao(String bookName)函數(shù),通過模糊查詢檢索出相關(guān)書籍信息;當(dāng)用戶單擊“加入購(gòu)買目錄”按鈕時(shí),將執(zhí)行addShoppingCart(int bookId)函數(shù),系統(tǒng)將會(huì)自動(dòng)加選定書籍添加到購(gòu)買目錄中并在顯示出來;當(dāng)用戶單擊“賬單結(jié)算”按鈕時(shí),將執(zhí)行new BillDi
15、alog(float money),彈出賬單結(jié)算對(duì)話框。(2) 設(shè)計(jì)賬單結(jié)算管理對(duì)話框賬單結(jié)算管理對(duì)話框可以用來結(jié)算賬單信息。添加一個(gè)對(duì)話框,將其命名為BillDialog。對(duì)話框的布局如圖4.3所示。圖4.3 對(duì)話框BillDialog的布局對(duì)話框啟動(dòng),輸入相關(guān)信息,當(dāng)你點(diǎn)擊“確認(rèn)賬單”時(shí),將執(zhí)行confirmBillDao(String memberName)函數(shù),則會(huì)顯示根據(jù)數(shù)據(jù)庫(kù)所計(jì)算出客戶所需支付金額,當(dāng)點(diǎn)擊“提交賬單”時(shí),將執(zhí)行submitOrdersDao(OrderVo vo)函數(shù),系統(tǒng)自動(dòng)將本次交易的金額存入會(huì)員信息中,以便會(huì)員升級(jí)和下次調(diào)用會(huì)員信息。5 系統(tǒng)測(cè)試方案和測(cè)試報(bào)
16、告5.1測(cè)試方案由于系統(tǒng)規(guī)模較小,所以沒有安排單獨(dú)的白盒測(cè)試,而是相應(yīng)地將這部分測(cè)試歸并到系統(tǒng)編碼過程中。整個(gè)測(cè)試過程基于自頂向下測(cè)試的組裝模塊的方法,先對(duì)主模塊進(jìn)行基本測(cè)試,然后在按深度優(yōu)先策略逐一將子模塊組裝到主模塊上進(jìn)行測(cè)試,最后再對(duì)系統(tǒng)進(jìn)行全面的整體測(cè)試。5.2測(cè)試過程(1)書籍銷售管理主界面測(cè)試運(yùn)行程序,登錄成功后進(jìn)入書籍銷售管理界面,如圖5.1所示:圖5.1 書籍銷售管理界面(2)書籍查詢功能測(cè)試輸入書籍名稱可查詢到自己想要的書籍信息,本查詢?yōu)槟:樵儯瑫?huì)顯示包含所輸入字符所有書籍,如圖5.2所示:圖5.2 模糊查詢顯示出的書籍分五本為一頁(yè),通過點(diǎn)擊“上頁(yè)”和“下頁(yè)”按鈕可以查詢其
17、他頁(yè)碼的書籍,如圖5.3和5.4所示:圖5.3 分頁(yè)顯示查詢結(jié)果(a)圖5.4 分頁(yè)顯示查詢結(jié)果(b)(3)選擇書籍并加入購(gòu)買目錄功能測(cè)試選擇查詢出的一條數(shù)據(jù),并單擊加入購(gòu)物車按鈕,將自動(dòng)把選中書籍添加到購(gòu)買目錄中,如圖5.5所示:圖5.5 添加書籍至購(gòu)買目錄(4)訂單管理功能測(cè)試移除書籍:選定購(gòu)買目錄中的一本書,點(diǎn)擊“移除”按鈕,將自動(dòng)把所選書籍從購(gòu)買目錄中移除,如圖5.6所示:圖5.6 移除書籍賬單結(jié)算:點(diǎn)擊“賬單結(jié)算”,按鈕,將自動(dòng)彈出一個(gè)賬單結(jié)算窗口,“訂單查詢”,如圖5.7所示:圖5.7 賬單結(jié)算界面輸入會(huì)員名稱和實(shí)付金額,點(diǎn)擊確認(rèn)賬單,將自動(dòng)計(jì)算根據(jù)會(huì)員折扣后所需找零金額,如圖5.
18、8所示:圖5.8 賬單結(jié)算功能點(diǎn)擊“提交賬單”,將提示賬單提交成功,將會(huì)吧數(shù)據(jù)傳到數(shù)據(jù)庫(kù),并對(duì)相應(yīng)的數(shù)據(jù)進(jìn)行處理,如圖5.9所示:圖5.9 提交賬單6 結(jié)束語(yǔ)本系統(tǒng)完成了一個(gè)書店管理系統(tǒng)的基本功能,包括書籍銷售管理、庫(kù)存管理、會(huì)員管理等。我們小組將該系統(tǒng)分為三大模塊,分別由三位小組成員負(fù)責(zé),最后再一起匯總,經(jīng)過不斷的調(diào)試,所有功能經(jīng)過測(cè)試均能夠正確運(yùn)行,操作簡(jiǎn)便,界面友好。通過小組合作完成本次課程設(shè)計(jì),我對(duì)數(shù)據(jù)庫(kù)這門課程有了更加深刻的理解,同時(shí)也能熟練的運(yùn)用eclipse來編寫較為簡(jiǎn)單的java程序,并且也使得自己在對(duì)系統(tǒng)數(shù)據(jù)庫(kù)的分析、設(shè)計(jì)有更深刻的了解。我們?cè)诟髯跃帉懗绦蛑杏龅搅撕芏鄦栴},通
19、過查閱相關(guān)資料,問題得到了解決,同時(shí)也學(xué)到了一定的java編程知識(shí)。另外,通過運(yùn)用JDBC數(shù)據(jù)庫(kù)連接技術(shù),我對(duì)java數(shù)據(jù)庫(kù)編程技術(shù)也有了一定的了解和認(rèn)識(shí),希望通過以后的學(xué)習(xí)繼續(xù)加深這方面知識(shí)的掌握。參考文獻(xiàn)1王汝傳.計(jì)算機(jī)圖形學(xué)M.北京:人民郵電出版社,1999:123130.2劉榴娣,劉明奇,黨長(zhǎng)民.實(shí)用數(shù)字圖像處理M.北京:北京理工大學(xué)出版,2000:1225.3 李彥,韓光林,李玉波. SQL SERVE完全自學(xué)手冊(cè)M. 北京:電子工業(yè)出版社,20074 薩師煊,王珊. 數(shù)據(jù)庫(kù)系統(tǒng)概論. 北京:高等教育出版社. 2005附錄:部分程序代碼/ 程序名稱: MainFrame.java/
20、程序功能:主界面/ 程序作者:漆盛/ 最后修改日期:2013-09-26package .view;import java.awt.BorderLayout;import javax.swing.JFrame;import javax.swing.JTabbedPane;import .view.panel.MemberInfoPanel;import .view.panel.OprationInfoPanel;import .view.panel.WarehouseInfoPanel;public class MainFrame extends JFrame private static f
21、inal long serialVersionUID = 1L;private JTabbedPane tab;private boolean flag;public MainFrame(boolean flag)this.flag=flag;init();private void init()this.add(createTab(),BorderLayout.CENTER);this.setTitle("書店管理系統(tǒng)");this.setSize(1000, 700);this.setLocationRelativeTo(null);this.setDefaultClos
22、eOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);this.setResizable(false);private JTabbedPane createTab() if(tab=null)tab=new JTabbedPane();tab.add("書籍銷售管理",new OprationInfoPanel();if(flag)tab.add("倉(cāng)庫(kù)庫(kù)存管理",new WarehouseInfoPanel();tab.add("會(huì)員信息管理",new MemberInfoPa
23、nel();return tab;/*書籍銷售管理選項(xiàng)卡面板*/package .view.panel;import java.util.Vector;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.table.DefaultTableModel;import .action.
24、OprationInfoPanelAction;import .vo.BookVo;import .vo.PageVo;public class OprationInfoPanel extends JPanel private static final long serialVersionUID = 1L;SuppressWarnings("rawtypes")private Vector title = new Vector();SuppressWarnings("rawtypes")private Vector title1 = new Vector
25、();private JScrollPane scroll;private DefaultTableModel model;private DefaultTableModel model1;private JTable table;private JTable cartTable;private OprationInfoPanelAction action = new OprationInfoPanelAction(this);private JTextField bookName = new JTextField(10);private int row = -1;private BookVo
26、 vo;private int rows = -1;private JPanel createOprationPanel;private JPanel createCartPanel;private JTextField pageText = new JTextField(2);private PageVo pageVo;private JPanel pagePanel;private JLabel cartName = new JLabel("購(gòu)買目錄");private JScrollPane cartScroll;private int cartRow;public
27、OprationInfoPanel() init();private void init() this.setLayout(null);this.add(createOprationPanel();createOprationPanel.setBounds(0, 0, 1000, 40);this.add(createScroll();scroll.setBounds(0, 45, 1000, 125);this.add(createPagePanel();pagePanel.setBounds(0, 170, 1000, 40);this.add(cartName);cartName.set
28、Bounds(0, 200, 80, 40);this.add(createCartScroll();cartScroll.setBounds(0, 240, 1000, 250);this.add(createCartPanel();createCartPanel.setBounds(0, 490, 1000, 50);private JPanel createPagePanel() if (pagePanel = null) pagePanel = new JPanel();pagePanel.add(createBut("首頁(yè)");pagePanel.add(crea
29、teBut("上頁(yè)");pagePanel.add(new JLabel("第");pagePanel.add(pageText);pagePanel.add(new JLabel("頁(yè)");pageText.setEditable(false);pagePanel.add(createBut("下頁(yè)");pagePanel.add(createBut("末頁(yè)");return pagePanel;private JPanel createOprationPanel() if (createOp
30、rationPanel = null) createOprationPanel = new JPanel();createOprationPanel.add(new JLabel("書籍名稱:");createOprationPanel.add(bookName);createOprationPanel.add(createBut("查詢");createOprationPanel.add(createBut("加入購(gòu)買目錄");return createOprationPanel;private JPanel createCartP
31、anel() if (createCartPanel = null) createCartPanel = new JPanel();createCartPanel.add(createBut("刷新");createCartPanel.add(createBut("移除");createCartPanel.add(createBut("賬單結(jié)算");return createCartPanel;private JScrollPane createScroll() if (scroll = null) scroll = new JScr
32、ollPane(createTable();return scroll;private JScrollPane createCartScroll() if (cartScroll = null) cartScroll = new JScrollPane(createCartTable();return cartScroll;SuppressWarnings("unchecked")private JTable createTable() title.add("書籍編號(hào)");title.add("書籍名稱");title.add(&qu
33、ot;作者");title.add("出版社");title.add("價(jià)格");model = new DefaultTableModel(title, 0);if (table = null) table = new JTable(model);return table;SuppressWarnings("unchecked")private JTable createCartTable() title1.add("書籍編號(hào)");title1.add("書籍名稱");title1.
34、add("作者");title1.add("出版社");title1.add("價(jià)格");title1.add("數(shù)量");model1 = new DefaultTableModel(title1, 0);if (cartTable = null) cartTable = new JTable(model1);return cartTable;private JButton createBut(String butName) JButton but = new JButton(butName);but.addAc
35、tionListener(action);return but;public String getBookName() return bookName.getText();public BookVo setBookVo() row = table.getSelectedRow();if (row != rows) vo = null;if (vo = null) rows = row;vo = new BookVo(Integer.parseInt(table.getValueAt(row, 0).toString(), table.getValueAt(row, 1).toString(),
36、 table.getValueAt(row, 2).toString(), table.getValueAt(row, 3).toString(), Integer.parseInt(table.getValueAt(row, 4).toString();return vo;SuppressWarnings("rawtypes")public void setModel(Vector rowData) model.setDataVector(rowData, title);SuppressWarnings("rawtypes")public void s
37、etModel1(Vector rowData) model1.setDataVector(rowData, title1);public int getBookId() int bookId = 0;row = table.getSelectedRow();bookId = Integer.parseInt(table.getValueAt(row, 0).toString();return bookId;public int getCartBookId() int bookId = 0;cartRow = cartTable.getSelectedRow();bookId = Intege
38、r.parseInt(cartTable.getValueAt(cartRow, 0).toString();return bookId;public PageVo getPageVo() if (pageVo = null) pageVo = new PageVo();return pageVo;public void setPageText(String page) pageText.setText(page);public void removeRow() cartRow = cartTable.getSelectedRow();model1.removeRow(cartRow);/*按
39、鈕事件監(jiān)聽*/package .action;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Vector;import javax.swing.JOptionPane;import .dao.BookDao;import .dao.PageDao;import .view.dialog.BillDialog;import .view.panel.OprationInfoPanel;public class OprationInfoPanelAction implem
40、ents ActionListener private OprationInfoPanel panel;public OprationInfoPanelAction(OprationInfoPanel panel) this.panel=panel;SuppressWarnings( "rawtypes" )Ocerridepublic void actionPerformed(ActionEvent e) String butName=e.getActionCommand();BookDao dao=new BookDao();PageDao pageDao = new
41、PageDao();if(butName.equals("查詢")Vector rowData =new Vector();rowData=dao.findDao(panel.getBookName();panel.getPageVo().changePageVo(1, 1, 5);panel.setPageText(Integer.toString(1);panel.setModel(rowData);else if(butName.equals("加入購(gòu)買目錄")Vector rowData;rowData=dao.addShoppingCart(p
42、anel.getBookId();panel.setModel1(rowData);else if(butName.equals("刷新")Vector rowData1;rowData1=dao.refreshCart();panel.setModel1(rowData1);else if(butName.equals("移除")boolean flag;flag = dao.delBookInfo(panel.getCartBookId();if (flag) panel.removeRow();JOptionPane.showMessageDial
43、og(null, "移除成功!", "移除成功",JOptionPane.OK_CANCEL_OPTION); else if(butName.equals("賬單結(jié)算")int i = JOptionPane.showConfirmDialog(null, "是否結(jié)算", "賬單結(jié)算",JOptionPane.YES_NO_OPTION);if (i = 0) new BillDialog(dao.cartInfoDao(); elseVector rowData = pageDao.book
44、PageDao(butName, panel.getBookName(),panel.getPageVo();panel.setPageText(Integer.toString(panel.getPageVo().getStartLine() / 5 + 1);panel.setModel(rowData);/*數(shù)據(jù)庫(kù)操作代碼*/SuppressWarnings( "rawtypes", "unchecked" )public Vector findDao(String bookName) Vector rowData = new Vector();t
45、ry Class.forName("oracle.jdbc.driver.OracleDriver");Connection con = DriverManager.getConnection("jdbc:oracle:thin:127.0.0.1:1521:orcl", "scott", "tiger");String sql = "select * from (select e.*,rownum num from book e where e.book_name like '%"+
46、bookName + "%') a where a.num between 1 and 5"Statement st = con.createStatement();ResultSet rs = st.executeQuery(sql);while (rs.next() Vector row = new Vector();row.add(rs.getInt("book_id");row.add(rs.getString("book_name");row.add(rs.getString("book_author&qu
47、ot;);row.add(rs.getString("book_press");row.add(rs.getInt("book_sale_price");rowData.add(row); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();return rowData;SuppressWarnings( "unchecked", "rawtypes" )public Vec
48、tor refreshCart() Vector rowData = new Vector();try Class.forName("oracle.jdbc.driver.OracleDriver");Connection con = DriverManager.getConnection("jdbc:oracle:thin:127.0.0.1:1521:orcl", "scott", "tiger");Statement st = con.createStatement();String sql = "
49、select *from book,bookId where book.book_id=bookId.book_id"ResultSet rs = st.executeQuery(sql);while (rs.next() Vector row = new Vector();row.add(rs.getInt("book_id");row.add(rs.getString("book_name");row.add(rs.getString("book_author");row.add(rs.getString("b
50、ook_press");row.add(rs.getInt("book_sale_price");row.add(1);rowData.add(row); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();return rowData;SuppressWarnings( "rawtypes", "unchecked" )public Vector addShoppingCart(in
51、t bookId) Vector rowData = new Vector();try Class.forName("oracle.jdbc.driver.OracleDriver");Connection con = DriverManager.getConnection("jdbc:oracle:thin:127.0.0.1:1521:orcl", "scott", "tiger");Statement st = con.createStatement();String sql1 = "insert
52、into bookId values(" + bookId + ")"st.executeUpdate(sql1);String sql = "select *from book,bookId where book.book_id=bookId.book_id"ResultSet rs = st.executeQuery(sql);while (rs.next() Vector row = new Vector();row.add(rs.getInt("book_id");row.add(rs.getString("
53、;book_name");row.add(rs.getString("book_author");row.add(rs.getString("book_press");row.add(rs.getInt("book_sale_price");row.add(1);rowData.add(row); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();return rowData;public boolean delBookInfo(int bookId) boolean flag = false;try Class.forName("oracle.jdbc.driver.OracleDriver");Connection con = DriverManager.getConnection("jdbc:oracle:thin:127.0.0.1:1521:orcl", "scott", "tiger");State
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年金屬單質(zhì)鐵氧化物項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告
- 賽跑比賽記事作文8篇
- 2025年消防安全設(shè)施維護(hù)與管理操作規(guī)范操作規(guī)范操作規(guī)范操作規(guī)范操作規(guī)范操作規(guī)范考試題庫(kù)
- 2025年P(guān)CM脈碼調(diào)制終端設(shè)備項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告
- 2025年心理咨詢師基礎(chǔ)理論知識(shí)測(cè)試卷(心理咨詢實(shí)踐案例分析)
- 2025年保險(xiǎn)從業(yè)資格考試保險(xiǎn)業(yè)務(wù)產(chǎn)品開發(fā)案例分析科目試卷
- 我和我的動(dòng)物朋友:寫物作文10篇
- 2025年電梯檢驗(yàn)員資格考試全真模擬試卷(含答案解析)
- 2025年法律職業(yè)資格考試客觀題試卷一法律職業(yè)道德與案例分析
- 軟件測(cè)試服務(wù)協(xié)議
- 2022年廣東高考成績(jī)一分一段表重磅出爐
- 新版病人搬運(yùn)(輪椅)操作評(píng)分標(biāo)準(zhǔn)
- 重癥監(jiān)護(hù)ICU護(hù)理實(shí)習(xí)生出科考試試題及答案
- GB/Z 22074-2008塑料外殼式斷路器可靠性試驗(yàn)方法
- GB/T 32360-2015超濾膜測(cè)試方法
- GB/T 15558.1-2015燃?xì)庥寐竦鼐垡蚁?PE)管道系統(tǒng)第1部分:管材
- 中藥學(xué)全套(完整版)課件
- 工程施工停止點(diǎn)檢查表
- 國(guó)開??啤锻鈬?guó)文學(xué)》十年期末考試題庫(kù)及答案
- 《滅火器維修》GA95-2015(全文)
- 浙江義務(wù)教育學(xué)校校園飲水質(zhì)量提升工程建設(shè)和維護(hù)浙江教育廳
評(píng)論
0/150
提交評(píng)論