![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/22/d7733c72-c376-4bdf-b780-f56664e8b2f0/d7733c72-c376-4bdf-b780-f56664e8b2f0pic.jpg)
![數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告--圖書館管理信息系統(tǒng)_第1頁](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/22/d7733c72-c376-4bdf-b780-f56664e8b2f0/d7733c72-c376-4bdf-b780-f56664e8b2f01.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告</b></p><p> -------圖書館管理信息系統(tǒng)</p><p><b> 目 錄</b></p><p> 一、系統(tǒng)開發(fā)平臺(tái)1</p><p><b> 二、數(shù)據(jù)庫規(guī)劃2</b></p>&
2、lt;p> 2.1 任務(wù)陳述2</p><p> 2.2 任務(wù)目標(biāo)2</p><p><b> 三、系統(tǒng)定義2</b></p><p> 3.1 系統(tǒng)邊界2</p><p> 3.2 用戶視圖2</p><p><b> 四、需求分析2</b>&
3、lt;/p><p> 4.1 用戶需求說明2</p><p> 4.1.1 數(shù)據(jù)需求2</p><p> 4.1.2 事務(wù)需求2</p><p> 4.2 系統(tǒng)需求說明2</p><p> 五、數(shù)據(jù)庫邏輯設(shè)計(jì)2</p><p><b> 5.1 ER圖2</b
4、></p><p> 5.2 數(shù)據(jù)字典2</p><p><b> 5.3 關(guān)系表2</b></p><p> 六、數(shù)據(jù)庫物理設(shè)計(jì)3</p><p><b> 6.1 索引3</b></p><p><b> 6.2 視圖3</b&g
5、t;</p><p> 6.3 安全機(jī)制3</p><p><b> 6.4 其他3</b></p><p> 七、應(yīng)用程序設(shè)計(jì)3</p><p> 7.1 功能模塊3</p><p> 7.2 界面設(shè)計(jì)3</p><p> 7.3 事務(wù)設(shè)計(jì)3<
6、;/p><p><b> 八、測(cè)試和運(yùn)行3</b></p><p><b> 九、總結(jié)4</b></p><p><b> 附. 參考文獻(xiàn)4</b></p><p><b> 一、系統(tǒng)開發(fā)平臺(tái)</b></p><p>&l
7、t;b> 題目:圖書管理系統(tǒng)</b></p><p> 開發(fā)工具:EasyEclipse Desktop Java 1.3.1.1</p><p> 數(shù)據(jù)庫:MySQL Server 5.1</p><p> 數(shù)據(jù)庫管理工具:SQLyog</p><p><b> 操作系統(tǒng):win7</b>&
8、lt;/p><p><b> 二、數(shù)據(jù)庫規(guī)劃</b></p><p><b> 2.1 任務(wù)陳述</b></p><p> 圖書館在正常運(yùn)營中面對(duì)大量書籍、讀者信息以及兩者間相互聯(lián)系產(chǎn)生的借書信息、還書信息。單純靠管理員人工記錄不僅耗時(shí)耗力而且信息不完整,易出錯(cuò)。因此需要對(duì)書籍資源、讀者資源、借書信息、還書信息進(jìn)行管理,
9、及時(shí)了解各個(gè)環(huán)節(jié)中信息的變更 ,收集并保存各個(gè)環(huán)節(jié)中產(chǎn)生的信息,然后以適當(dāng)?shù)男问较褡x者和管理員顯示,以保證圖書管理的高效。</p><p><b> 2.2 任務(wù)目標(biāo)</b></p><p><b> 三、系統(tǒng)定義</b></p><p><b> 3.1 系統(tǒng)邊界</b></p>
10、<p> 本系統(tǒng)用于圖書管理員對(duì)書籍信息,讀者信息,及兩者間聯(lián)系產(chǎn)生的借閱歸還信息進(jìn)行管理。用于讀者對(duì)自己的個(gè)人信息,借閱信息的管理。所以,系統(tǒng)的邊界在書籍信息,讀者信息,和管理員信息的輸入。</p><p><b> 書籍信息</b></p><p> isbn:同一種書籍的類編號(hào),相同isbn的書籍有0到n本(n大于0)。</p>
11、<p> id:唯一指明具體一本書的編號(hào),用于定位是哪一本書。</p><p><b> 書名:書的全名</b></p><p> 作者:書籍的作者姓名</p><p> 入庫日期:書籍進(jìn)入圖書館的時(shí)間</p><p> 入庫數(shù):進(jìn)入圖書館的同一isbn的書籍的數(shù)目。用于自動(dòng)生成書籍id</p&
12、gt;<p> 簡介:簡要介紹書籍的信息,以方便讀者查看,檢索。</p><p><b> 讀者信息:</b></p><p> id:唯一指明具體一個(gè)讀者的編號(hào),用于定位是哪一個(gè)讀者</p><p> 密碼:用于匹配確認(rèn)輸入的id是否是本館的讀者</p><p><b> 姓名:讀者的
13、姓名</b></p><p><b> 性別:讀者的性別</b></p><p><b> 年齡:讀者的年齡</b></p><p> 借書數(shù):讀者已經(jīng)借的書籍?dāng)?shù)量,達(dá)到一定數(shù)量后不允許借書</p><p><b> 管理員信息</b></p>
14、<p> id:唯一指明具體一個(gè)管理員的編號(hào),用于定位是哪一個(gè)管理員</p><p> 密碼:用于匹配確認(rèn)輸入的id是本館的管理員</p><p><b> 姓名:管理員姓名</b></p><p><b> 性別:管理員性別</b></p><p><b> 年齡:
15、管理員年齡</b></p><p><b> 3.2 用戶視圖 </b></p><p> 用戶視圖是從系統(tǒng)用戶的角度分析系統(tǒng)所要實(shí)現(xiàn)的功能,是系統(tǒng)數(shù)據(jù)在用戶層面上的映射。本系統(tǒng)的用戶有管理員和讀者兩部分。根據(jù)我從實(shí)際經(jīng)驗(yàn)以及從網(wǎng)上查找的資料分析以后,對(duì)用戶角度的視圖進(jìn)行如下定義。</p><p> 管理員視圖:管理員具有系統(tǒng)
16、的最高權(quán)限,可以對(duì)數(shù)據(jù)庫內(nèi)所有信息進(jìn)行增刪改查操作。負(fù)責(zé)對(duì)圖書,讀者及管理員自己個(gè)人信息的管理。他的視圖如下:</p><p> 1、圖書管理:包括圖書的錄入、查詢、修改和刪除。</p><p> 2、管理員信息管理:添加、查詢、修改,刪除所有管理員的信息。</p><p> 3、讀者管理:包括讀者信息的添加、查詢、修改、刪除等。</p><
17、;p> 4、系統(tǒng)數(shù)據(jù)處理:數(shù)據(jù)查詢,包括查看當(dāng)前在館書籍信息、當(dāng)前所有違章</p><p> 罰款信息、所有被預(yù)約圖書信息等。</p><p> 5、管理員的個(gè)人功能:包括查看個(gè)人信息、修改密碼、重新登陸、退出系</p><p><b> 統(tǒng)等。</b></p><p> 6、圖書流通中的借書操作:借書時(shí)
18、需要輸入用戶號(hào)和圖書 ISBN。如果該圖</p><p> 書可借,則正常借書,提示“借閱成功”;如果該書不可借,則彈出窗口提示。</p><p> 7、圖書流通中的還書操作:還書時(shí)需要輸入用戶號(hào)和圖書 ISBN。若正常還</p><p> 書,點(diǎn)擊確定即可;若讀者違章,可填寫違章記錄,并處以罰款。</p><p><b>
19、 讀者視圖:</b></p><p> 1、圖書檢索功能(包括簡單檢索和高級(jí)檢索):可以檢索所有書籍信息和特定輸入要求的書籍,點(diǎn)擊搜索到的信息后可以顯示該書的詳細(xì)信息。然后進(jìn)行預(yù)訂操作。被預(yù)訂和借閱的書籍顯示不可借閱。</p><p> 2、查看個(gè)人信息、修改密碼等個(gè)人信息。</p><p> 3、查看個(gè)人借閱歷史。</p><
20、p> 4、續(xù)借已借圖書:在查看個(gè)人借閱歷史模塊里實(shí)現(xiàn),當(dāng)前已借未還未續(xù)借</p><p> 的每本書后面都有一個(gè)續(xù)借按鈕,選中后點(diǎn)擊可以實(shí)現(xiàn)該書的續(xù)借。</p><p> 5、圖書預(yù)約:可查看自己的預(yù)約信息及處理情況,也可以取消已有的預(yù)約,表示不再預(yù)約本書。</p><p> 6、查看違章欠款記錄。</p><p><b&
21、gt; 四、需求分析</b></p><p> 4.1 用戶需求說明</p><p> 4.1.1 數(shù)據(jù)需求</p><p> 系統(tǒng)可以瀏覽、操作、管理各個(gè)分館的圖書信息。對(duì)應(yīng)書籍實(shí)體的圖書信息包括圖書的編號(hào),ISBN ,名稱,作者,書名,內(nèi)容簡介,入庫時(shí),圖書館購進(jìn)圖書總數(shù),書籍當(dāng)前在庫數(shù)目等。除了如入庫時(shí)間等一些從服務(wù)器自動(dòng)獲取的信息外,
22、其他的信息都要根據(jù)管理員和讀者的操作來修改數(shù)據(jù)庫,以便及時(shí)修改圖書的信息。</p><p> 此外管理員還需要維護(hù)圖書館管理員信息、讀者信息、不良記錄信息。</p><p> 圖書館管理員信息和讀者信息包括:用戶編號(hào)、用戶密碼、用戶名字、用戶年齡、用戶性別。其中讀者可以修改除編號(hào)外的其他信息。管理員不能添加讀者,讀者只能自己注冊(cè)。讀者只有在注冊(cè)后才可進(jìn)行借書、還書、留言等一系列操作。&
23、lt;/p><p> 借書信息有管理員錄入,讀者只能查看自己的借書信息。管理員可以查看所有讀者的借書信息。借書信息包括讀者的id,書籍的id,借閱日期,和書籍的isbn。其中讀者id,書籍id,書籍isbn有管理員輸入,日期由系統(tǒng)自動(dòng)生成。</p><p> 還書信息由管理員錄入。管理員可以查看所有還書信息。還書信息包括讀者id,書籍id,書籍isbn,還書日期,違章信息。其中讀者id,書
24、籍id,由管理員輸入且不能為空,日期由系統(tǒng)自動(dòng)生成。違章信息由管理員輸入,可以為空,為空表示讀者借書期間沒有違章,則讀者還書后不會(huì)再看到該書的違章信息。</p><p> 借書信息包括借書記錄號(hào)、用戶號(hào)書籍編號(hào)、借閱日期、是否續(xù)借、是否歸還等信息。對(duì)于讀者的不良記錄,系統(tǒng)將予以存儲(chǔ)。存儲(chǔ)的信息有不良記錄編號(hào)、借閱編號(hào)、不良記錄描述。對(duì)應(yīng)于用戶請(qǐng)求記錄實(shí)體的請(qǐng)求信息包括請(qǐng)求信息編號(hào)、用戶編號(hào)、請(qǐng)求描述、請(qǐng)求發(fā)出時(shí)
25、間、該請(qǐng)求是否實(shí)現(xiàn)等內(nèi)容。</p><p> 4.1.2 事務(wù)需求</p><p><b> 1數(shù)據(jù)錄入</b></p><p> 讀者注冊(cè)時(shí)錄入自己的詳細(xì)情況;</p><p> 錄入新進(jìn)圖書的各項(xiàng)信息;</p><p> 管理員錄入書籍借閱信息</p><p>
26、; 管理員錄入用戶的不良記錄</p><p> 讀者預(yù)約時(shí)添加預(yù)約信息</p><p><b> 2數(shù)據(jù)更新/刪除</b></p><p> 更新/刪除管理員的個(gè)人信息;</p><p> 更新/刪除用戶的個(gè)人信息;</p><p> 更新/刪除圖書的基本信息;</p>
27、<p> 更新/刪除圖書的借閱信息;</p><p> 更新/刪除圖書的預(yù)約信息;</p><p> 更新/刪除違章信息;</p><p><b> 3數(shù)據(jù)查詢</b></p><p> 查詢用戶的個(gè)人信息;</p><p> 查詢管理員的個(gè)人信息;</p>&
28、lt;p> 查詢圖書的基本信息;</p><p> 查詢圖書的完整信息;</p><p> 查詢圖書的借閱信息;</p><p> 查詢用戶的預(yù)約信息;</p><p> 查詢用戶的不良記錄信息;</p><p><b> 4.1.3系統(tǒng)用例</b></p><
29、;p><b> 參與者</b></p><p><b> 系統(tǒng)用例:</b></p><p><b> 用例總圖:</b></p><p> 4.2 系統(tǒng)需求說明 </p><p> 4.2.1 性能: </p><p> 單個(gè)記錄查詢
30、時(shí)間少于 2 秒</p><p> 多個(gè)記錄查詢時(shí)間少于 3 秒</p><p> 更新/保存記錄時(shí)間少于 2 秒</p><p><b> 4.2.2安全性:</b></p><p><b> 輸入錯(cuò)誤要有提示</b></p><p> 刪除信息是要保證詢問是否刪
31、除相關(guān)信息</p><p><b> 4.2.3運(yùn)行需求</b></p><p> 4.2.5.1 用戶界面</p><p> 用戶界面要大方,易于操作</p><p> 4.2.5.2 接口</p><p> 運(yùn)行于Windows 操作系統(tǒng)之上</p><p>
32、 4.2.53 故障處理</p><p> 正常使用時(shí)不應(yīng)出錯(cuò),</p><p> 用戶輸入錯(cuò)誤需要給出提示和必要的指導(dǎo)</p><p> 保證數(shù)據(jù)庫的事務(wù)性,在遇到不可恢復(fù)的錯(cuò)誤時(shí)要回滾之前的操作</p><p><b> 五、數(shù)據(jù)庫邏輯設(shè)計(jì)</b></p><p><b>
33、 5.1 ER圖</b></p><p><b> 實(shí)體1書籍</b></p><p> 實(shí)體2用戶(讀者和管理員)</p><p><b> 聯(lián)系1歸還</b></p><p><b> 聯(lián)系2預(yù)約</b></p><p><
34、;b> 聯(lián)系3借閱</b></p><p><b> 5.2 數(shù)據(jù)字典</b></p><p> 根據(jù)以上的E-R圖進(jìn)行數(shù)據(jù)庫的邏輯設(shè)計(jì),用表格的形式顯示表的名稱,數(shù)據(jù)類型和說明</p><p><b> 實(shí)體1書籍</b></p><p><b> 實(shí)體2讀者
35、</b></p><p><b> 聯(lián)系1歸還</b></p><p><b> 聯(lián)系2預(yù)約</b></p><p><b> 聯(lián)系3借閱</b></p><p><b> 5.3 關(guān)系表</b></p><p>
36、; ?。?)book(book_id,book_isbn,book_name,book_author, book_introduction , book_date ,book_amount,book_in)</p><p> 主鍵:book_id</p><p> ?。?)reader(reader_id,reader _password,reader _name, reader _ag
37、e,reader _sex,pre_num,borrow_num)</p><p> 主鍵:user_id</p><p> ?。?)admin(admin_name,admin_age,admin_sex,admin_id,admin_password)</p><p> 主鍵:admin_id</p><p> (4)borrow(
38、reader_id , book_id , bor_date , book_isbn)</p><p> 主鍵:book_id,reader_id</p><p> (5)pre(reader_id,book_id,book_isbn,book_name,pre_date)</p><p> 主鍵:reader_id,book_id</p>&l
39、t;p> (6)ret(reader_id,book_id,ret_date,violate_info)</p><p> 主鍵:reader_id,book_id</p><p><b> 六、數(shù)據(jù)庫物理設(shè)計(jì)</b></p><p><b> 6.1 索引</b></p><p>
40、 由于系統(tǒng)所使用的數(shù)據(jù)不是很多,在已有的測(cè)試數(shù)據(jù)下對(duì)書籍,讀者信息的搜索排序的性能能夠滿足系統(tǒng)的要求。所以雖然建立索引可以改善系統(tǒng)的性能,但是在這個(gè)系統(tǒng)條件下建立索引對(duì)性能的改進(jìn)不是很大。所以本系統(tǒng)未建立索引。</p><p><b> 6.2 安全機(jī)制</b></p><p><b> 系統(tǒng)安全</b></p><p&g
41、t; 登錄的只能是本館的讀者或者管理員,且登錄需要有登錄密碼用于確認(rèn),如果不是本館用戶將無法進(jìn)入操作界面。</p><p> 有些操作需要用戶選擇才能進(jìn)行,如果用戶輸入有誤不能進(jìn)行操作且要提示用戶。</p><p><b> 數(shù)據(jù)安全</b></p><p> 在操作過程中如果出錯(cuò)則已經(jīng)進(jìn)行的數(shù)據(jù)庫操作需要回滾,保證回到錯(cuò)誤操作之前的狀
42、態(tài)。</p><p><b> 七、應(yīng)用程序設(shè)計(jì)</b></p><p><b> 7.1 功能模塊</b></p><p><b> 讀者部分:</b></p><p> 用戶注冊(cè)登錄:連接數(shù)據(jù)庫,判斷用戶信息,向數(shù)據(jù)庫添加新的用戶 </p><p
43、> ?主界面:提供登錄后進(jìn)入各個(gè)功能模塊的入口</p><p> ?個(gè)人信息:用于顯示服務(wù)器對(duì)用戶的提示及相關(guān)個(gè)人信息</p><p> 借閱信息:顯示讀者的借閱信息</p><p> ?搜索模塊:用于顯示符合用戶需求的書籍信息,對(duì)讀者選中的書籍進(jìn)行預(yù)訂</p><p> ?違章信息:在顯示讀者的違章信息</p&
44、gt;<p> ?預(yù)定模塊:顯示讀者的預(yù)定信息</p><p><b> 管理員部分:</b></p><p> 用戶注冊(cè)登錄:連接數(shù)據(jù)庫,判斷用戶信息,向數(shù)據(jù)庫添加新的用戶 </p><p> ?主界面:提供登錄后進(jìn)入各個(gè)功能模塊的入口</p><p> ?用戶管理:用于查找顯示,刪除,修
45、改讀者和管理員信息</p><p> 借閱管理:顯示所有讀者的借閱信息,用于進(jìn)行借書還書的操作界面</p><p> ?書籍管理:用于顯示館內(nèi)所有書籍信息,并可進(jìn)行搜索,按條件刪除操作</p><p> ?違章管理:顯示/搜索所有讀者的違章信息,并能進(jìn)行刪除修改等操作</p><p><b> 7.2 界面設(shè)計(jì)</
46、b></p><p> 登錄界面:可以選擇讀者還是管理員登錄,如果登錄用戶不存在或者密碼錯(cuò)誤會(huì)彈出窗口提示用戶重新輸入</p><p> 可以點(diǎn)擊注冊(cè)按鈕注冊(cè)新的讀者,但是不能注冊(cè)新管理員。</p><p><b> 讀者個(gè)人信息</b></p><p> 讀者登錄后的界面,顯示讀者的所有個(gè)人信息,個(gè)人信息
47、可以修改</p><p> 讀者搜索:根據(jù)讀者輸入和選擇的搜索條件把符合條件的書籍在書籍信息內(nèi)顯示出來,然后點(diǎn)擊具體一本書可以顯示書籍的詳細(xì)信息,并決定是否要預(yù)定。預(yù)定成功和失敗都要提示用戶</p><p> 管理員書籍管理:管理員登陸后這里顯示所有書籍的詳細(xì)信息,可以在書名和isbn后輸入搜索條件進(jìn)行輸入,若沒有輸入條件則默認(rèn)搜索所有書籍信息.選中書籍后可以刪除,刪除可以根據(jù)選擇刪除
48、</p><p> 相同isbn,相同作者或相同書名等的書籍</p><p> 管理員標(biāo)題欄工具欄和菜單欄:</p><p> 在標(biāo)題欄根據(jù)管理員輸入id顯示管理員名字和登陸時(shí)間,可以在工具欄選擇重新登陸或退出,在菜單欄進(jìn)行各個(gè)操作界面的替換.</p><p> 管理員借書和還書操作界面:</p><p>
49、管理員在這里輸入借書和還書的信息,借書還書失敗會(huì)給出提示.</p><p><b> 7.3 事務(wù)設(shè)計(jì)</b></p><p> 事物設(shè)計(jì)的函數(shù)代碼和sql語句</p><p> 7.3.1管理員刪除書籍:</p><p> if(getJCheckBox().isSelected()){</p>
50、<p> sql="delete from book where book_isbn='"+isbn+"'";</p><p> bookdb.Chuli(sql);</p><p><b> }</b></p><p> if(getJCheckBox1().isSel
51、ected()){</p><p> sql="delete from book where book_author='"+author+"'";</p><p> bookdb.Chuli(sql);</p><p><b> }</b></p><p>
52、 if(getJCheckBox2().isSelected()){</p><p> sql="delete from book where book_press='"+press+"'";</p><p> bookdb.Chuli(sql);</p><p><b> }</b>
53、;</p><p> if(getJCheckBox3().isSelected()){</p><p> sql="delete from book where book_name='"+bookname+"'";</p><p> bookdb.Chuli(sql);</p><p
54、><b> }</b></p><p> 說明:設(shè)置四個(gè)JCheckBox,根據(jù)管理員的選擇來生成sql語句,然后將sql語句作為一個(gè)數(shù)據(jù)庫處理類BookDB的方法Chuli()的參數(shù)傳遞過去進(jìn)行數(shù)據(jù)庫操作。</p><p> 7.3.2讀者的書籍搜索代碼和sql語句</p><p><b> /*</b>&
55、lt;/p><p> * 這個(gè)方法用于根據(jù)用戶的輸入獲得查詢語句</p><p><b> */</b></p><p> public String getSql(){</p><p> String sql="";</p><p> String input=getJ
56、TextField().getText();</p><p> String searchtype;</p><p> String resulttype = null;</p><p> String ordertype = null;</p><p> int index1=getJComboBox().getSelectedIn
57、dex();</p><p> int index2=getJComboBox1().getSelectedIndex();</p><p> if(getJRadioButton().isSelected()){</p><p> ordertype="asc";</p><p><b> }</
58、b></p><p> if(getJRadioButton1().isSelected()){</p><p> ordertype="desc";</p><p><b> }</b></p><p> if(index2==0){</p><p> //根
59、據(jù)isbn排序</p><p> resulttype="book_isbn";</p><p><b> }</b></p><p> if(index2==1){</p><p> resulttype="book_date";</p><p>
60、<b> }</b></p><p> if(index2==2){</p><p> resulttype="book_in";</p><p><b> }</b></p><p> System.out.println("輸入框的輸入為"+in
61、put);</p><p> if(index1==0){</p><p> //根據(jù)isbn來查找</p><p> sql="select book_id,book_name,book_author,book_introduction" +</p><p> ",subable from book w
62、here book_isbn='"+input+"' order by "</p><p> +resulttype+" "+ordertype;</p><p><b> }</b></p><p> if(index1==1){</p><p>
63、<b> //根據(jù)書名來查找</b></p><p> if(getJRadioButton3().isSelected()){</p><p> sql="select book_id,book_name,book_author,book_introduction" +</p><p> ",subabl
64、e from book where book_name like '%"+input+"%' order by "+</p><p> resulttype+" "+ordertype;</p><p> System.out.println("根據(jù)書名精確:"+sql);</p>&l
65、t;p><b> }</b></p><p> if(getJRadioButton2().isSelected()){</p><p> sql="select book_id,book_name,book_author,book_introduction" +</p><p> ",subable
66、 from book where book_name='"+input+"' order by "</p><p> +resulttype+" "+ordertype;</p><p> System.out.println("根據(jù)書名模糊:"+sql);</p><p>&
67、lt;b> }</b></p><p><b> }</b></p><p> if(index1==2){</p><p><b> //根據(jù)作者來查找</b></p><p> if(getJRadioButton3().isSelected()){</p>
68、;<p> sql="select book_id,book_name,book_author,book_introduction" +</p><p> ",subable from book where book_author like '%"+input+"%' order by "</p><
69、p> +resulttype+" "+ordertype;</p><p> System.out.println("根據(jù)作者模糊:"+sql);</p><p><b> }</b></p><p> if(getJRadioButton2().isSelected()){</p&g
70、t;<p> sql="select book_id,book_name,book_author,book_introduction" +</p><p> ",subable from book where book_author='"+input+"' order by "</p><p>
71、 +resulttype+" "+ordertype;</p><p> System.out.println("根據(jù)作者精確:"+sql);</p><p><b> }</b></p><p><b> }</b></p><p> if(inde
72、x1==3){</p><p> if(getJRadioButton3().isSelected()){</p><p> sql="select book_id,book_name,book_author,book_introduction" +</p><p> ",subable from book where book_
73、press like '%"+input+"%' order by "</p><p> +resulttype+" "+ordertype;</p><p><b> }</b></p><p> if(getJRadioButton2().isSelected()){&
74、lt;/p><p> sql="select book_id,book_name,book_author,book_introduction" +</p><p> ",subable from book where book_press ='"+input+"' order by "</p><
75、;p> +resulttype+" "+ordertype;</p><p><b> }</b></p><p><b> }</b></p><p> return sql;</p><p><b> }</b></p>&
76、lt;p><b> /*</b></p><p> * 用用戶數(shù)據(jù)庫類來獲得書籍信息,輸入為從頁面得到的查詢語句,輸出為在列表中顯示的書籍信息</p><p><b> */</b></p><p> public Vector executeSql(String sql){</p><p
77、> Vector<Vector<String>> info=new Vector();</p><p> Vector<String> ainfo=new Vector();</p><p><b> try {</b></p><p> statement=connection.createS
78、tatement();</p><p> resultset=statement.executeQuery(sql);</p><p> while(resultset.next()){</p><p> ainfo.add(resultset.getString(1));</p><p> ainfo.add(resultset.g
79、etString(2));</p><p> ainfo.add(resultset.getString(3));</p><p> ainfo.add(resultset.getString(4));</p><p> ainfo.add(resultset.getString(5));</p><p> info.add(ainf
80、o);</p><p> ainfo=new Vector();</p><p><b> }</b></p><p> 說明:在讀者界面類里面用getSql()方法獲得根據(jù)讀者選擇的搜索條件產(chǎn)生的搜索語句,然后將產(chǎn)生的搜索語句作為數(shù)據(jù)庫操作類ReaderDB中的executeSql()方法的參數(shù)來獲得符合搜索條件的結(jié)果保存在一個(gè)Vect
81、or類型變量中,返回給讀者的搜索界面。</p><p> 7.3.3管理員還書操作:</p><p> public void returnBook(String reader,String book,Date date,String info){</p><p> if(info.equals("")){</p><p
82、> info="(NULL)";</p><p><b> }</b></p><p> System.out.println("還書時(shí)的違規(guī)信息"+info);</p><p> sql="insert into ret(reader_id,book_id,ret_date,vi
83、olate_info) values('"+reader+"','"</p><p> +book+"','"+date+"','"+info+"')";</p><p> sql1="update book set boo
84、k_in=book_in+1 where book_isbn='"+book+"'";</p><p> String sql2="delete from borrow where reader_id='"+reader+"' and book_id='"+book+"'";
85、</p><p> String sql3="update book set borrowable='是' where book_id='"+book+"'";</p><p> String sql4="update reader set borrow_num=borrow_num-1 where re
86、ader_id='"+reader+"'";</p><p><b> try {</b></p><p> statement=connection.createStatement();</p><p> statement.executeUpdate(sql1);</p>&
87、lt;p> statement.executeUpdate(sql);</p><p> statement.executeUpdate(sql2);</p><p> statement.executeUpdate(sql3);</p><p> statement.executeUpdate(sql4);</p><p>
88、 System.out.println("還書失敗的地方"+sql4);</p><p> JOptionPane.showMessageDialog(null,"還書成功");</p><p> System.out.println("更新完畢");</p><p> } catch (SQLExc
89、eption e) {</p><p> JOptionPane.showMessageDialog(null,"還書失敗,該書已被歸還");</p><p> // TODO Auto-generated catch block</p><p> 說明:管理員在進(jìn)行還書操作時(shí)調(diào)用的數(shù)據(jù)庫操作類BookDB中的returnBook()方法,
90、由于還書操作要涉及到很多表的信息修改所以需要執(zhí)行多個(gè)sql語句。若其中的一個(gè)語句執(zhí)行失敗則所有操作都不能被執(zhí)行。</p><p> 此外所有的事物操作都定義為在三個(gè)數(shù)據(jù)庫操作類(ReaderDB,DBHandler,BookDB)中的方法。三個(gè)操作類分別用來處理讀者,管理員,書籍的有關(guān)操作。每個(gè)類都有各自的數(shù)據(jù)庫連接方法,關(guān)閉方法,便于調(diào)用。</p><p><b> 八、測(cè)
91、試和運(yùn)行</b></p><p><b> 測(cè)試要點(diǎn):</b></p><p> 在所有代碼編寫完成之后進(jìn)行系統(tǒng)測(cè)試工作。測(cè)試的主要工作在于:</p><p> 1.是否完成所要求的增刪改查功能</p><p> 2.界面組件的操作是否可以正常執(zhí)行</p><p> 3.數(shù)據(jù)
92、庫的操作是否正確運(yùn)行</p><p><b> 測(cè)試步驟:</b></p><p> 1.注冊(cè)三個(gè)讀者,id分別為001,002,003</p><p> 2.讀者和管理員的登錄操作,檢測(cè)輸入錯(cuò)誤提示</p><p> 3.管理員登錄進(jìn)行借閱,圖書搜索添加等操作。查看讀者,管理員信息,查看所有讀者的借閱記錄。&l
93、t;/p><p> 4.讀者登錄,修改個(gè)人信息,查看借閱記錄,搜索圖書,預(yù)定操作等</p><p> 5.管理員登錄,進(jìn)行讀者刪除,讀者信息修改,圖書刪除,預(yù)定信息查看,刪除,還書,違章信息查看等操作。</p><p><b> 測(cè)試結(jié)果:</b></p><p> 1.到系統(tǒng)提交時(shí),題目所要求的基本功能都實(shí)現(xiàn)了,包
94、括讀者信息,圖書信息,讀者和書籍間聯(lián)系信息如借閱,歸還,預(yù)定等操作的功能。</p><p> 2.界面設(shè)計(jì)沒有改善,不夠大方和明了,操作起來繁瑣</p><p> 3.輸入檢測(cè)不完整,例如用戶在修改信息時(shí)若輸入空時(shí)沒有提示輸入錯(cuò)誤信息,且會(huì)進(jìn)行錯(cuò)誤的數(shù)據(jù)庫操作</p><p><b> 九、總結(jié)</b></p><p&
95、gt; 至此,我的整個(gè)課程設(shè)計(jì)全部完成了。期間幾乎天天都在為完成設(shè)計(jì)進(jìn)行各種工作。感覺作為一個(gè)程序員真的很麻煩也很累,但是獨(dú)立完成工作后很有成就感。收獲有如下幾點(diǎn):</p><p> 1.在寫代碼前進(jìn)行規(guī)劃和估計(jì),這樣能夠指導(dǎo)代碼編寫的步驟和進(jìn)度,比憑感覺去編寫代碼提高了很大的效率。</p><p> 2.第一次數(shù)據(jù)庫設(shè)計(jì)時(shí)沒有充分考慮需求,導(dǎo)致程序?qū)懙揭话氩虐l(fā)現(xiàn)功能太過簡單,然后重
96、新進(jìn)行設(shè)計(jì)和修改花了很多時(shí)間。以后設(shè)計(jì)數(shù)據(jù)庫要盡量考慮充分所有可能的需求,詳細(xì)設(shè)計(jì)才能磨刀不誤砍柴工。</p><p> 3.在課程設(shè)計(jì)提交時(shí),實(shí)驗(yàn)老師說了很多界面設(shè)計(jì)方面的意見和建議,這些都是在寫代碼時(shí)沒有考慮到的但是很基礎(chǔ)的問題,這些給我很多提示。</p><p> 4.這次課程設(shè)計(jì)寫了四千七百多行的代碼,是我到目前為止所有個(gè)人完成的編程工作中最大的一次。還是很有成就感的。<
97、/p><p> 當(dāng)然這次課程設(shè)計(jì)也有很多不足的地方,主要有下面幾個(gè)方面:</p><p> 1.規(guī)劃時(shí)低估了需求,然后需要在數(shù)據(jù)庫中加進(jìn)很多新的東西,導(dǎo)致最后功能不完善,而且拖延了進(jìn)度。</p><p> 2.編寫代碼時(shí)的類劃分不清晰,有些方法已經(jīng)重復(fù)了,而且很多方法沒法重用??梢越梃b同學(xué)的編程方法。</p><p><b>
98、附. 參考文獻(xiàn)</b></p><p> 1.《java基礎(chǔ)應(yīng)用案例開發(fā)》 李剛生,王燚,焦玲 清華大學(xué)出版社</p><p> 2.《java課程設(shè)計(jì)教程》 機(jī)械工業(yè)出版社</p><p> 3.sql語句基礎(chǔ)教程 </p><p> 4.java數(shù)據(jù)庫連接方法CSDN博
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告---圖書館管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)-圖書館管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--圖書館管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)---圖書館管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)-圖書館管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)---圖書館圖書借閱管理信息系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
- 數(shù)據(jù)庫原理課程設(shè)計(jì)---圖書館管理信息系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告---圖書館管理系統(tǒng)數(shù)據(jù)庫
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告——圖書館管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告---圖書館管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告——圖書館管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告--圖書館管理系統(tǒng)
- 圖書館管理信息系統(tǒng)課程設(shè)計(jì)報(bào)告
- 管理信息系統(tǒng)課程設(shè)計(jì)---圖書館管理信息系統(tǒng)
- 圖書館管理信息系統(tǒng)課程設(shè)計(jì)
- 管理信息系統(tǒng)課程設(shè)計(jì)(圖書館)
- 數(shù)據(jù)庫課程設(shè)計(jì)----圖書館管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)---圖書館管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)(圖書館管理系統(tǒng))
- 數(shù)據(jù)庫課程設(shè)計(jì)---圖書管理信息系統(tǒng)
評(píng)論
0/150
提交評(píng)論