《JAVA圖書管理系統(tǒng)開發(fā)》實訓(xùn)報告(共34頁)_第1頁
《JAVA圖書管理系統(tǒng)開發(fā)》實訓(xùn)報告(共34頁)_第2頁
《JAVA圖書管理系統(tǒng)開發(fā)》實訓(xùn)報告(共34頁)_第3頁
《JAVA圖書管理系統(tǒng)開發(fā)》實訓(xùn)報告(共34頁)_第4頁
《JAVA圖書管理系統(tǒng)開發(fā)》實訓(xùn)報告(共34頁)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上JAVA圖書管理系統(tǒng)開發(fā)實訓(xùn)報告 課程名稱: JAVA 圖書管理系統(tǒng)開發(fā) 專 業(yè): 計算機應(yīng)用技術(shù) 班 級:ZB10001 學(xué) 號: 姓 名: 成 績: 計算機學(xué)院二一二年三月五日目 錄一、程序設(shè)計目的通過項目驅(qū)動的學(xué)習(xí)和綜合實訓(xùn),熟練掌握運用Java語言進行桌面應(yīng)用程序開發(fā)的基本知識和技能;熟練掌握JAVA的基本語法與JDBC數(shù)據(jù)庫技術(shù)的應(yīng)用;進一步熟悉SQL Server數(shù)據(jù)庫的數(shù)據(jù)庫管理(數(shù)據(jù)庫的創(chuàng)建、備份與恢復(fù)、函數(shù)與存儲過程的應(yīng)用、數(shù)據(jù)導(dǎo)入導(dǎo)出、作業(yè)的調(diào)度等)、表的設(shè)計(表的創(chuàng)建、修改、刪除,字段的默認值、約束及關(guān)系等)、數(shù)據(jù)的查詢處理(insert、upd

2、ate、delete、select語句的應(yīng)用)等技術(shù);并能結(jié)合數(shù)據(jù)庫應(yīng)用技術(shù)和軟件工程技術(shù)進行桌面應(yīng)用程序的開發(fā),能基本勝任Java桌面開發(fā)程序員的崗位。二、程序設(shè)計題目描述和要求圖書管理系統(tǒng),是一個由人、計算機等組成的能進行管理信息的收集、傳遞、加工、保存、維護和使用的系統(tǒng)。其功能一般包括:圖書信息管理、用戶信息管理、圖書借閱、圖書歸還、違約與毀壞賠償、圖書借還查詢等等。三、程序設(shè)計報告內(nèi)容3.1 系統(tǒng)需求分析以我校實際情況為基礎(chǔ),對于圖書館圖書管理設(shè)計一個適合于學(xué)校圖書館使用的圖書管理系統(tǒng)。還可以為學(xué)校領(lǐng)導(dǎo)提供圖書的庫存和圖書流通量的查詢。該系統(tǒng)需要完成對圖書類別管理、統(tǒng)計管理、庫存管理、

3、用戶信息管理、圖書借閱管理、圖書歸還管理、超期與損毀賠償管理、圖書借還查詢管理、圖書出入庫和統(tǒng)計查詢等。3.1.1 功能需求描述(1)、圖書管理:對圖書進行分類存儲(計算機、機械、建筑、文學(xué)、心理、藝術(shù)、經(jīng)濟、歷史、地理、其它)。在入庫和出庫的時候按圖書類別進行管理。可對現(xiàn)有圖書信息信息進行管理(查詢、修改)。(2)、庫存信息管理:對于圖書出庫圖書登記和入庫圖書登記。(3)、用戶信息管理:可以實現(xiàn)對不同用戶進行添加、查詢、刪除和修改,并給與不同用戶不同權(quán)限。(4)、圖書借閱管理:對于圖書借閱信息的登記(書名、圖書編號、館藏、借書日期、借期、應(yīng)還日期)、對現(xiàn)有圖書庫存減少、對圖書借閱人信息進行登

4、記(姓名/學(xué)號、本次借閱冊數(shù)、圖書編號)。(5)、圖書歸還管理:對圖書信息進行登記(圖書編號、借書日期、借期、應(yīng)還日期、超期、續(xù)期)對圖書借閱人信息進行登記(姓名/學(xué)號、現(xiàn)借冊數(shù)、現(xiàn)借藏書信息)。 (6)、圖書超期與損毀賠償管理:對于超期、損毀圖書進行賠償收費并登記賠償人和管理員信息以及費用金額。圖書管理系統(tǒng)圖書管理用戶管理現(xiàn)有庫存管理出庫管理入庫管理圖書借閱管理圖書歸還管理添加用戶管理刪除用戶管理修改用戶管理權(quán)限管理圖書賠償管理系統(tǒng)設(shè)計圖1、 圖書類別管理:對圖書進行分類存儲。在入庫和出庫的時候按圖書類別進行管理。(1)分類:按圖書的性質(zhì)進行分類,并在圖書編號中對不同類別的書籍使用不同的類別

5、標示符(計算機(JS)、機械(JQ)、建筑(JZ)、文學(xué)(WX)、心理(XL)、藝術(shù)(YS)、經(jīng)濟(JJ)、歷史(LS)、地理(DL)。(2)圖書信息管理:對現(xiàn)有圖書信息進行查看并可以修改。2、 庫存信息管理:對于圖書出庫圖書登記和入庫圖書登記及現(xiàn)有庫存圖書進行管理。(1) 入庫管理:記錄入庫圖書總量,分類別進行統(tǒng)計并記錄。記錄登記人員姓名。(將這些信息記錄進數(shù)據(jù)庫中,在相應(yīng)查詢權(quán)限下可以查詢。但是記錄后不可修改。)(2) 出庫管理:記錄出庫圖書總量,分類別進行統(tǒng)計記錄,記錄登記人員姓名。將這些信息記錄進數(shù)據(jù)庫中,在相應(yīng)查詢權(quán)限下可以查詢。但是記錄后不可修改。)(3) 現(xiàn)有庫存管理:對現(xiàn)有庫存

6、進行管理,在入庫時對庫存進行增加并對每一本圖書進行分類編號登記,在出庫時對庫存減少并刪除相應(yīng)的圖書信息。3、 用戶信息管理:可以實現(xiàn)對不同用戶進行添加、查詢、刪除和修改,并給與不同用戶不同權(quán)限。(1) 用戶信息添加:對用戶的相應(yīng)信息進行添加(用戶名,密碼,出生日期,性別,管理操作權(quán)限,借閱權(quán)限)。(2) 用戶信息查詢:對用戶的信息進行查詢。(3) 用戶信息刪除:對用戶信息進行刪除。(4) 用戶信息修改:用戶可以對自己的用戶密碼和出生日期進行修改,管理員只可以修改用戶的權(quán)限4、 圖書借閱管理:對于圖書借閱信息的登記(書名、圖書編號、館藏、借書日期、借期、應(yīng)還日期)同時系統(tǒng)自動對借閱圖書量增加、對

7、現(xiàn)有圖書庫存減少、對圖書借閱人信息進行登記(姓名/學(xué)號、本次借閱冊數(shù)、現(xiàn)借冊數(shù)、可借冊數(shù)、現(xiàn)借藏書信息)。(1) 借閱信息登記:對用戶的信息進行登記(姓名、本次借閱冊數(shù)、現(xiàn)借冊數(shù)、可借冊數(shù)、現(xiàn)借藏書信息),并根據(jù)借書權(quán)限借閱相應(yīng)的書籍?dāng)?shù)量。(將信息記錄入數(shù)據(jù)庫中相應(yīng)權(quán)限可以進行查詢。)(2) 對借閱圖書進行登記:對借出圖書的書名、圖書編號、館藏、借書日期、借期、應(yīng)還日期進行登記并關(guān)聯(lián)相應(yīng)的借書用戶系統(tǒng)自動的在書籍借閱標示欄加一表示借出。(圖書在圖書館內(nèi)借閱欄標示0,借出后自動加1,歸還自動減1,損毀在借閱的基礎(chǔ)上加1。將信息記錄入數(shù)據(jù)庫中相應(yīng)權(quán)限可以進行查詢。)(0表示在書庫中,1表示借出,2

8、表示損毀)。5、 圖書歸還管理:對圖書信息進行登記(書名、圖書編號、館藏、借書日期、借期、應(yīng)還日期、超期、續(xù)期)對圖書借閱人信息進行登記(姓名/學(xué)號、現(xiàn)借冊數(shù)、可借冊數(shù)、現(xiàn)借藏書信息)。(1) 用戶信息顯示:顯示用戶信息(姓名/學(xué)號、現(xiàn)借冊數(shù)、可借冊數(shù)、現(xiàn)借藏書信息),對圖書信息管登記(書名、圖書編號、館藏、借書日期、借期、應(yīng)還日期、超期、續(xù)期)并根據(jù)是否超期損毀進行相應(yīng)操作。(2) 用戶信息刪除:對相應(yīng)的借書用戶關(guān)聯(lián)圖書信息刪除。系統(tǒng)自動在圖書標示欄內(nèi)減1。系統(tǒng)自動將用戶現(xiàn)借數(shù)量減1,可借數(shù)量加1。6、 圖書超期和損毀賠償管理:對于超期、損毀圖書進行賠償收費并登記賠償人和管理員信息以及費用金

9、額。(1) 超期賠償管理:登記用戶信息(姓名/學(xué)號)查看超期時間并對其進行賠償收費(記錄收費人信息,賠償人信息,收費金額,收費日期并存入數(shù)據(jù)庫中)。(2) 損毀賠償管理:登記用戶信息(姓名/學(xué)號)并對其進行賠償收費(記錄收費人信息,賠償人信息,收費金額,收費日期并存入數(shù)據(jù)庫中)。在圖書信息中的借閱標示欄內(nèi)系統(tǒng)自動在借閱的基礎(chǔ)上加1表示損毀。3.1.2 對應(yīng)數(shù)據(jù)需求描述1 、 圖書類別管理數(shù)據(jù)需求:圖書分類管理數(shù)據(jù)需求:(按:計算機、機械、建筑、文學(xué)、心理、藝術(shù)、經(jīng)濟、歷史、地理九類進行分類)。并對分類圖書進行標識(計算機(JS)、機械(JQ)、建筑(JZ)、文學(xué)(WX)、心理(XL)、藝術(shù)(Y

10、S)、經(jīng)濟(JJ)、歷史(LS)、地理(DL)。并在標識符后面加四位編號(例子:JS0001)。數(shù)據(jù)項數(shù)據(jù)需求圖書類別名稱按圖書類別進行分類(初始分為九種),計算機、機械、建筑、文學(xué)、心理、藝術(shù)、經(jīng)濟、歷史、地理。在系統(tǒng)完成后可進行類別的添加和刪除修改。(10漢字內(nèi))類別說明對相應(yīng)類別進行詳細描述。2 、庫存信息管理數(shù)據(jù)需求:(1) 入庫管理數(shù)據(jù)需求:數(shù)據(jù)項數(shù)據(jù)需求入庫編號用于在數(shù)據(jù)庫中唯一標識入庫信息。自動增加入庫ISBN編號用于唯一標識圖書的圖書ISBN編碼 。入庫圖書數(shù)量圖書的數(shù)量。入庫時間記錄圖書入庫時間。入庫操作員編號記錄登記圖書入庫操作員的編號。(2) 出庫管理數(shù)據(jù)需求:出庫編號用

11、于在數(shù)據(jù)庫中唯一標識出庫信息。自動增加出庫ISBN編號用于唯一標識圖書的圖書ISBN編碼 。出庫圖書數(shù)量圖書數(shù)量出庫時間記錄圖書出庫時間。出庫操作員編號登記圖書出庫操作員的編號。3、 用戶信息管理數(shù)據(jù)需求:(1)用戶信息添加數(shù)據(jù)需求:數(shù)據(jù)項數(shù)據(jù)需求用戶編號用于唯一標識學(xué)生,要求:共8位,前2為年份,中間2位特殊類別標號(默認00),后面4位為報名序號。姓名15個漢字以內(nèi),可能帶有特殊符號(可修改)。性別只能是“男”或“女”。密碼任意612位字符。電話十一為數(shù)字(座機前面加區(qū)號)。班級存儲學(xué)院班級詳細信息注冊時間如:2012-12-10用戶權(quán)限號只能有以下四種(領(lǐng)導(dǎo),管理員,教師,學(xué)生),狀態(tài)包

12、括:正常、暫停使用和已注銷(2)用戶權(quán)限管理:數(shù)據(jù)項數(shù)據(jù)需求權(quán)限編號編號用于標示權(quán)限類別的編號權(quán)限名稱權(quán)限的名稱。(領(lǐng)導(dǎo)、教師、管理員、學(xué)生)可借閱書籍根據(jù)權(quán)限借閱不同數(shù)量的書籍。(3)用戶信息修改數(shù)據(jù)需求:修改用戶的信息。數(shù)據(jù)項數(shù)據(jù)需求用戶編號用于唯一標識學(xué)生,要求:共8位,前2為年份,中間2位特殊類別標號(默認00),后面4位為報名序號。姓名15個漢字以內(nèi),可能帶有特殊符號(可修改)。性別只能是“男”或“女”。密碼任意612位字符。電話十一為數(shù)字(座機前面加區(qū)號)。班級存儲學(xué)院班級詳細信息注冊時間如:2012-12-10用戶權(quán)限號權(quán)限的標識號碼。只能有以下四種(領(lǐng)導(dǎo),管理員,教師,學(xué)生),

13、狀態(tài)包括:正常、暫停使用和已注銷(5)用戶信息刪除數(shù)據(jù)需求:刪除用戶的注冊信息。4 、圖書借閱,歸還管理數(shù)據(jù)需求:在借閱圖書時的數(shù)據(jù)需求。數(shù)據(jù)項數(shù)據(jù)需求借還編號唯一標識借閱信息的編號。在數(shù)據(jù)庫中區(qū)別信息。用戶編號管理員人工將用戶編號輸入登記框。ISBN管理員人工將圖書編號輸入登記框。借閱時間系統(tǒng)自動在電腦上獲取時間。借閱數(shù)量登記借閱書籍的數(shù)量。歸還時間在歸還時自動獲取時間。5、圖書超期和損毀賠償管理數(shù)據(jù)需求:數(shù)據(jù)項數(shù)據(jù)需求賠償編號唯一標識借閱信息編號。自動增加。用戶編號管理員人工將用戶編號輸入文本框。ISBN編號管理員人工將圖書編號輸入文本框。情況描述對于賠償情況的詳細描述處理結(jié)果管理員登記賠

14、償金額收費時間系統(tǒng)自動獲取系統(tǒng)時間。操作員編號輸入操作員編號。3.1.3 數(shù)據(jù)庫概念模型設(shè)計用戶電話班級注冊時間密碼姓名用戶編號性別權(quán)限號狀態(tài)圖1 用戶實體圖權(quán)限權(quán)限名權(quán)限編號可借閱書籍?dāng)?shù)量圖2 權(quán)限實體圖圖書圖書名作者出版社書價庫存量ISBN編號類別名出版時間現(xiàn)存量圖3 圖書實體圖類別類別說明圖書類別名圖4 類別實體圖借還用戶編號ISBN編號借閱數(shù)量借閱時間歸還時間借還編號圖5 借還實體圖賠償用戶編號ISBN編號情況描述處理時間處理結(jié)果操作員編號賠償編號圖6 賠償實體圖入庫入庫時間入庫數(shù)量入庫操作員編號入庫ISBN編號入庫編號圖7 入庫實體圖出庫出庫時間出庫數(shù)量出庫操作員編號出庫ISBN編號

15、出庫編號圖8 出庫實體圖功能功能編號功能模塊圖9 功能實體圖模塊功能編號權(quán)限編號圖10 模塊實體圖讀者圖書類別借還違約所屬管理員圖書管理用戶管理NMNNMMM1NN圖11 各實體關(guān)系圖3.1.4數(shù)據(jù)庫邏輯模型設(shè)計模型設(shè)計根據(jù)E-R圖,將其轉(zhuǎn)換為關(guān)系模式可得到以下8個關(guān)系模式:用戶(用戶編號、姓名、性別、密碼、電話、班級、注冊時間、權(quán)限編號、狀態(tài))權(quán)限(權(quán)限編號、權(quán)限名稱、可借閱書籍)模塊(權(quán)限編號、功能名稱)圖書(ISBN編號、圖書名、作者、出版社、出版時間、書價、圖書書類別名、庫存量、現(xiàn)存量)類別(圖書類別名、說明)借還(借閱編號、用戶編號、ISBN、借閱時間、借閱數(shù)量、歸還時間)賠償(賠償

16、編號、用戶編號、ISBN編號、原因、處理結(jié)果、處理時間、操作員編號)出庫(出庫編號、ISBN編號、出庫圖書數(shù)量、出庫時間、出庫操作員編號)入庫(入庫編號、ISBN編號、入庫圖書數(shù)量、入庫時間、入庫操作員編號)3.1.5表的設(shè)計與實現(xiàn)表一:用戶信息表(users)=(OK)字段名稱類型是否為空默認值是否主鍵用戶編號(user_Id)intnot null自動增加主鍵用戶名(user_Name)varchar(10)not null性別(user_Sex)char(2)not null男密碼(user_Pwd)char(12)not null電話(user_Tel)varchar (30)班級(u

17、ser_Class)varchar (50)注冊時間(user_Time)datetimenot null自動獲取權(quán)限編號(limit_Id)varchar(10)not null學(xué)生外鍵狀態(tài)(user_State)char(4)not null使用表二:用戶權(quán)限表(limit)=(OK)字段名稱類型是否為空默認值是否主鍵權(quán)限編號(limit_Id)varchar(10)not null自動增加主鍵(S001)權(quán)限類名(limit_Name)varchar(15)not null借閱書籍?dāng)?shù)量(limit_Qty)int not null3表三:圖書信息表(books)字段名稱類型是否為空默認值

18、是否主鍵ISBN編號(book_Id)varchar(17)not null主鍵圖書名(book_Name)varchar(30)not null作者(book_Author)varchar (10)not null出版社(book_Society)varchar(50)not null出版時間(book_Time)datatimenot null書價(book_Price)intnot null圖書類別名(book_Sort)varchar(10)not null計算機外鍵庫存量(book_Qty)int現(xiàn)存量(book_Qtyx)int表四:功能模塊表(module)=(OK)字段名稱類型

19、是否為空默認值是否主鍵權(quán)限編號(lilmit_Id)varchar(10)not null外鍵模塊名稱(module_Name)varchar(30)not null表五:超期損毀表(compensate)字段名稱類型是否為空默認值是否主鍵賠償編號(cpt_Id)intnot null主鍵用戶編號(user_Id)intnot null外鍵ISBN編號(book_Id)varchar(17)not null外鍵原因(cpt_Cause)varchar (50)not null收費(cpt_result)char(10)not null收費時間(cpt_Time)datatimenot null

20、自動獲取操作員編號(user_Id)intnot null外鍵表七:圖書類別表:(sort)=字段名稱類型是否為空默認值是否主鍵圖書類別名(book_Sort)varchar(10)not null計算機主鍵說明explaintext表六:借閱歸還表(borrow)字段名稱類型是否為空默認值是否主鍵借閱編號(borrow_Id)intnot null主鍵用戶編號(user_Id)Intnot null外鍵ISBN編號(book_Id)varchar(17)not null外鍵借閱時間(borrow_Time)datetimenot null自動獲取借閱數(shù)量(borrow_Qty)int歸還時間

21、(return_Time)datatime自動獲取表八:入庫表:(enter)字段名稱類型是否為空默認值是否主鍵入庫編號(enter_Id)intnot null自動增加主鍵ISBN編號(book_Id)varchar(17)not null外鍵入庫圖書數(shù)量(enter_Qty)intnot null入庫時間(enter_Time)datatimenot null自動獲取入庫操作員編號(user_Id)intnot null外鍵表九:出庫表(out)字段名稱類型是否為空默認值是否主鍵出庫編號(out_Id)varchar(10)not null自動增加主鍵ISBN編號(book_Id)varc

22、har(12)not null外鍵出庫圖書數(shù)量(out_Qty)intnot null出庫時間(out_Time)datatimenot null自動獲取出庫操作員編號(user_Id)varchar(10)not null外鍵管理系統(tǒng)窗口圖3.2系統(tǒng)詳細設(shè)計與實現(xiàn)3.2.1 登陸界面設(shè)計public void actionPerformed(ActionEvent e) /監(jiān)視器if(e.getSource()=Ok)/點擊確定時執(zhí)行的語句if(yh.getText().equals("")/判斷用戶號是否輸入JOptionPane.showMessageDialog(O

23、k,"請輸入賬號 ","提示",JOptionPane.INFORMATION_MESSAGE);else if(mm.getText().equals("")/判斷密碼是否為空JOptionPane.showMessageDialog(Ok,"請輸入 密碼!","提示",JOptionPane.INFORMATION_MESSAGE);try Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); cat

24、ch (ClassNotFoundException e1) JOptionPane.showMessageDialog(null,"數(shù)據(jù)庫驅(qū)動程序不存在","提示",JOptionPane.ERROR_MESSAGE);try Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=圖書管理系統(tǒng)","sa","123");PreparedStatement

25、 pstmt=con.prepareStatement("select * from users where user_Id=? and user_Pwd=? and user_State='使用'");pstmt.setInt(1,Integer.parseInt(yh.getText();pstmt.setString(2,mm.getText();ResultSet rst=pstmt.executeQuery();if(rst.next()new MainFrame("圖書管理系統(tǒng)",Integer.parseInt(yh.get

26、Text();this.dispose();elseJOptionPane.showMessageDialog(null,"用戶名不存在或者密碼不正確,請重新輸入!","提示",JOptionPane.ERROR_MESSAGE); catch (SQLException e1) JOptionPane.showMessageDialog(null,"SQL語句執(zhí)行錯誤!","提示",JOptionPane.ERROR_MESSAGE);if(e.getSource()=Cancel)/點擊取消實現(xiàn)的this.di

27、spose();if(bc.isSelected()=true)/選擇記住密碼savaFile();if(bc.isSelected()=false)/未選擇記住密碼savaFile1();if(e.getSource()=login)/點擊注冊按鈕new LoginFrame("注冊");public void savaFile()/實現(xiàn)對文本框文字的保存File f=new File(".datadk.txt");try FileWriter txt=new FileWriter(f);txt.write(yh.getText()+"-&q

28、uot;);txt.write(mm.getText()+"+");txt.close(); catch (IOException e) / TODO 自動生成 catch 塊e.printStackTrace();public void savaFile1()/實現(xiàn)對空白文本的保存File f=new File(".datadk.txt");try FileWriter txt=new FileWriter(f);txt.write(yh.getText()+"-");txt.write(""+"+&q

29、uot;);txt.close(); catch (IOException e) / TODO 自動生成 catch 塊e.printStackTrace();public void Duqu() /實現(xiàn)對文字的讀取FileReader fr;try fr = new FileReader(".datadk.txt");BufferedReader br = new BufferedReader(fr); try String line = br.readLine();yh.setText(line.toString().substring(0,line.toString(

30、).indexOf('-');mm.setText(line.toString().substring(line.toString().indexOf('-')+1,line.toString().indexOf('+'); catch (IOException e) e.printStackTrace(); catch (FileNotFoundException e1) e1.printStackTrace(); 3.2.2 主界面void setAllFrameIcon()/在運行新窗體之前,將所有的窗體最小化JInternalFrame

31、jf;jf=desk1.getAllFrames();for(int i=0;i<jf.length;i+)try if(!jfi.isIcon() jfi.setIcon(true); catch (PropertyVetoException e) e.printStackTrace();desk1.validate();boolean getDakai(String s)/判斷標題為s的窗體是否打開JInternalFrame jf;jf=desk1.getAllFrames();for(int i=0;i<jf.length;i+)if(s.equals(jfi.getTit

32、le()return false;return true;void openFrame(String s)/搜索標題為s的窗體,并將其顯式出來JInternalFrame jf;jf=desk1.getAllFrames();for(int i=0;i<jf.length;i+)if(s.equals(jfi.getTitle()try jfi.setIcon(false); catch (PropertyVetoException e) / TODO 自動生成 catch 塊e.printStackTrace();public void actionPerformed(ActionEv

33、ent e) /監(jiān)視器方法if(e.getSource()=m21)|(e.getSource()=b1)new BorrowFrame(userId);/借閱窗口if(e.getSource()=m25)|(e.getSource()=b2)new DamageFrame(userId);if(e.getSource()=m22)new OutFrame(userId);/if(e.getSource()=m23)if(e.getSource()=b3)new DJFrame();if(e.getSource()=m24)|(e.getSource()=b4)new EnterFrame(u

34、serId);if(e.getSource()=m31)|(e.getSource()=b6)new CanFrame("用戶注銷");if(e.getSource()=m32)|(e.getSource()=b5)new LimitFrame();if(e.getSource()=m33)new UpdateFrame();if(e.getSource()=m41)if(e.getSource()=m42)new GyFrame("軟件關(guān)于");3.2.3 用戶注冊界面設(shè)計/加載驅(qū)動try Class.forName("com.microso

35、ft.jdbc.sqlserver.SQLServerDriver");/1、加載數(shù)據(jù)庫驅(qū)動程序 catch (ClassNotFoundException e1) JOptionPane.showMessageDialog(null,"加載驅(qū)動程序失敗!");/監(jiān)視器實現(xiàn)的事件public void actionPerformed(ActionEvent e) if(e.getSource()=Ok)/點擊注冊按鈕實現(xiàn)的事件try Connection con=DriverManager.getConnection("jdbc:microsoft:sq

36、lserver:/:1433;DatabaseName=圖書管理系統(tǒng)","sa","123");/2、創(chuàng)建數(shù)據(jù)庫連接對象conPreparedStatement pstmt=con.prepareStatement("insert into users(user_Name,user_Sex,user_Pwd,user_Tel,user_Class)values(?,?,?,?,?)");/3、創(chuàng)建PreparedStatement預(yù)處理執(zhí)行對象pstmt pstmt.setString(1,Nametext

37、.getText(); if(man.isSelected() pstmt.setString(2,"男"); else pstmt.setString(2,"女"); pstmt.setString(3,Pwdtext.getText(); pstmt.setString(4,Teltext.getText(); pstmt.setString(5,Classtext.getText(); /5、執(zhí)行數(shù)據(jù)插入操作,將返回值賦值給整型變量n int n=pstmt.executeUpdate(); /6、判斷n是否大于0,如果大于0提示注冊成功并關(guān)閉注冊

38、窗體,否則提示注冊失敗 if(n>0)/判斷成功并提示! JOptionPane.showMessageDialog(null,"注冊用戶成功!","添加用戶提示",JOptionPane.INFORMATION_MESSAGE); this.dispose(); else/失敗 JOptionPane.showMessageDialog(null,"注冊用戶失?。?quot;,"添加用戶提示",JOptionPane.ERROR_MESSAGE); pstmt.close();/7、關(guān)閉預(yù)處理對象pstmt con.

39、close();/8、關(guān)閉數(shù)據(jù)庫連接對象con catch (SQLException e1) JOptionPane.showMessageDialog(null,"SQL語句執(zhí)行錯誤!","提示",JOptionPane.ERROR_MESSAGE);if(e.getSource()=Cancel)this.dispose();3.2.4 圖書登記界面設(shè)計/為下拉菜單添加數(shù)據(jù)庫中數(shù)據(jù)try Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); catch (C

40、lassNotFoundException e1) JOptionPane.showMessageDialog(null,"數(shù)據(jù)庫驅(qū)動程序不存在","提示",JOptionPane.ERROR_MESSAGE);try Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=圖書管理系統(tǒng)","sa","123");PreparedStatement pstm

41、t=con.prepareStatement("select book_Sort from sort");ResultSet rst=pstmt.executeQuery();while(rst.next()Sortext.addItem(rst.getString(1);rst.close();pstmt.close();con.close(); catch (SQLException e1) JOptionPane.showMessageDialog(null,"SQL語句執(zhí)行錯誤!","提示",JOptionPane.ERROR

42、_MESSAGE);/監(jiān)視器方法public void actionPerformed(ActionEvent e) if(e.getSource()=Ok)/點擊登記實現(xiàn)的事件try Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver:/:1433;DatabaseName=圖書管理系統(tǒng)","sa","123");/2、創(chuàng)建數(shù)據(jù)庫連接對象con/下面在添加分組 PreparedStatement pstmt=con.prepare

43、Statement("insert into books(books_Id,books_Name,books_Author,books_Society,books_Time,books_Price,books_Sort)values(?,?,?,?,?,?,?)");/3、創(chuàng)建PreparedStatement預(yù)處理執(zhí)行對象pstmt /4、為每個參數(shù)設(shè)置值 pstmt.setString(1,Idtext.getText(); pstmt.setString(2,Nametext.getText(); pstmt.setString(3,Auttext.getText()

44、; pstmt.setString(4,Soctext.getText(); pstmt.setString(5,Timetext.getText(); pstmt.setInt(6,Integer.parseInt(Pritext.getText(); pstmt.setString(7,Sortext.getSelectedItem().toString(); int n=pstmt.executeUpdate(); if(n>0)/成功! JOptionPane.showMessageDialog(null,"添加圖書成功!","添加圖書提示"

45、;,JOptionPane.INFORMATION_MESSAGE); this.dispose(); else/失敗 JOptionPane.showMessageDialog(null,"添加圖書失?。?quot;,"添加圖書提示",JOptionPane.INFORMATION_MESSAGE); pstmt.close();/7、關(guān)閉預(yù)處理對象pstmt con.close();/8、關(guān)閉數(shù)據(jù)庫連接對象con catch (SQLException e1) JOptionPane.showMessageDialog(null,"SQL執(zhí)行錯誤!&

46、quot;); if(e.getSource()=Cancel)this.dispose();3.2.5 圖書入庫面設(shè)計/監(jiān)視器中實現(xiàn)的事件public void actionPerformed(ActionEvent e) if(e.getSource()=Ok)/點擊確定要執(zhí)行的事件try Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");/1、加載數(shù)據(jù)庫驅(qū)動程序 catch (ClassNotFoundException e1) JOptionPane.showMessageDialog(nul

47、l,"加載驅(qū)動程序失??!");try Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver:/:1433;DatabaseName=圖書管理系統(tǒng)","sa","123");/2、創(chuàng)建數(shù)據(jù)庫連接對象con /下面首先判斷要添加的分組是否存在,如果不存在才添加分組PreparedStatement pstmt1=con.prepareStatement("select * from books where b

48、ooks_Id=?");pstmt1.setString(1,BookIdtext.getText();ResultSet rst=pstmt1.executeQuery();if(!rst.next()/不存在則添加new DJFrame();else PreparedStatement pstmt=con.prepareStatement("insert into enter(books_Id,enter_Qty,user_Id)values(?,?,?)");/3、創(chuàng)建PreparedStatement預(yù)處理執(zhí)行對象pstmt pstmt.setString

49、(1,BookIdtext.getText(); pstmt.setInt(2,Integer.parseInt(Qtytext.getText(); pstmt.setInt(3,userId); PreparedStatement pstmt2=con.prepareStatement("update books set books_Qty=books_Qty+?,books_Qtyx=books_Qtyx+? where books_Id=?"); pstmt2.setInt(1,Integer.parseInt(Qtytext.getText(); pstmt2.s

50、etInt(2,Integer.parseInt(Qtytext.getText(); pstmt2.setString(3,BookIdtext.getText(); int n=pstmt2.executeUpdate(); int n1=pstmt.executeUpdate(); if(n>0)&&(n1>0)/成功! JOptionPane.showMessageDialog(null,"圖書入庫成功!","入庫提示",JOptionPane.INFORMATION_MESSAGE); this.dispose();

51、 else/失敗 JOptionPane.showMessageDialog(null,"圖書入庫失?。?quot;,"入庫提示",JOptionPane.ERROR_MESSAGE); pstmt.close();/7、關(guān)閉預(yù)處理對象pstmt pstmt2.close();/7、關(guān)閉預(yù)處理對象pstmtrst.close();pstmt1.close(); con.close();/8、關(guān)閉數(shù)據(jù)庫連接對象con catch (SQLException e1) if(e.getSource()=Cancel)/點擊取消則關(guān)閉窗口this.dispose();3.2.6 圖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論