版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 數(shù)據(jù)庫課程設(shè)計報告</b></p><p><b> 網(wǎng)上圖書管理系統(tǒng)</b></p><p> 課程名稱 數(shù)據(jù)庫課程設(shè)計 </p><p> 專 業(yè) 計算機(jī)科學(xué)與技術(shù) </p><p><b> 摘 要</b&
2、gt;</p><p> 隨著信息技術(shù)的發(fā)展,計算機(jī)已被廣泛的應(yīng)用于社會的各個領(lǐng)域,成為推動社會發(fā)展的技術(shù)動力。而在計算機(jī)應(yīng)用中,軟件的作用十分突出,軟件已經(jīng)發(fā)展成為信息技術(shù)的核心,主導(dǎo)著信息產(chǎn)品的開發(fā)和信息技術(shù)市場的進(jìn)一步的開拓。軟件產(chǎn)業(yè)已成為社會信息化進(jìn)程中的一個戰(zhàn)略性產(chǎn)業(yè)。在軟件技術(shù)的應(yīng)用中軟件的開發(fā)技術(shù)尤其是應(yīng)用型軟件產(chǎn)品的開發(fā)技術(shù)成了重中之重。不斷開發(fā)適應(yīng)用戶需求、市場需要的新型軟件產(chǎn)品。尤其是在校園
3、里,各種軟件的應(yīng)用無處不在,為我們的學(xué)習(xí)和生活提供了方便。學(xué)校的圖書館不僅給我們提供看書學(xué)習(xí)的地方,還給我們提供了一套功能齊全的圖書館系統(tǒng),方便我們搜索書籍、借閱圖書。</p><p> 我本次的數(shù)據(jù)庫課程設(shè)計的最終目標(biāo)是利用Java語言和Oracle數(shù)據(jù)庫實(shí)現(xiàn)一個圖書管理系統(tǒng),使其具有一般圖書管理系統(tǒng)所具有的功能,可以實(shí)現(xiàn)管理員注冊、管理員添加、管理員退出、讀者添加、讀者修改、讀者查詢、讀者刪除、新書入庫、書
4、籍查詢、書籍借閱與歸還等功能。因?yàn)镴ava是一門很優(yōu)秀的編程語言,具有面向?qū)ο蟆⑴c平臺無關(guān)、安全、穩(wěn)定和多線程等特點(diǎn),所以用Java編程為我們本次程序的編寫提供了方便。在設(shè)計中我們主要進(jìn)行了數(shù)據(jù)庫及類的設(shè)計,把整系統(tǒng)分成了com.SJK.db、com.SJK.model、com.SJK.tools、com.SJK.view4個包包含了20個類和5個表。通過應(yīng)用awt、swing、sql、until等包,合理的添加了按鈕、菜單、文本框、文
5、本區(qū)、表格等組件類,還包含窗口、面板等容器類,經(jīng)過設(shè)計者合理的布局,完成了窗體的設(shè)計,并通過建立JDBC連接器連接到Oracle數(shù)據(jù)庫后,向數(shù)據(jù)庫發(fā)送SQL語句實(shí)現(xiàn)程序與數(shù)據(jù)庫中表間的消息通信,從而實(shí)現(xiàn)了相應(yīng)的圖書館管理系統(tǒng)的功能(或通過存儲過程來調(diào)用數(shù)據(jù)庫表的信息)。</p><p> 本文主要分為緒論、系統(tǒng)功能介紹、數(shù)據(jù)庫需求分析、系統(tǒng)功能實(shí)現(xiàn)、結(jié)論、致謝、參考文獻(xiàn)7大塊。在緒論中介紹了本次課設(shè)選題的緣由及
6、思想。系統(tǒng)功能介紹中詳細(xì)介紹了本圖書管理系統(tǒng)的整體思想及其具體功能。在數(shù)據(jù)庫需求分析中詳細(xì)說明了數(shù)據(jù)庫的需求分析、概念設(shè)計及表的設(shè)計。在系統(tǒng)功能實(shí)現(xiàn)中主要通過抓圖來體現(xiàn)設(shè)計的結(jié)果??傊覀兊恼w設(shè)計思想均在報告中體現(xiàn)。</p><p> 關(guān)鍵詞: 圖書館管理系統(tǒng),Java程序設(shè)計語言,Oracle數(shù)據(jù)庫</p><p><b> 目錄</b></p>
7、<p><b> 摘 要2</b></p><p> 第1章 緒 論4</p><p> 第2章 系統(tǒng)功能介紹5</p><p> 2.2 模塊功能介紹5</p><p> 2.2.1 管理員模塊功能介紹5</p><p> 第3章 數(shù)據(jù)庫設(shè)計7</
8、p><p> 第4章 系統(tǒng)功能實(shí)現(xiàn)9</p><p> 4.1 管理員模塊功能實(shí)現(xiàn)9</p><p> 4.1.1 管理員登陸9</p><p> 4.2 讀者管理模塊功能實(shí)現(xiàn)15</p><p> 4.1.1 讀者添加15</p><p> 4.1.2 讀者修改17<
9、/p><p> 4.1.3 讀者查詢19</p><p> 4.1.4 讀者刪除20</p><p> 4.2 書籍管理模塊功能實(shí)現(xiàn)23</p><p> 4.1.1 新書入庫23</p><p> 4.3 書籍借閱與歸還模塊功能實(shí)現(xiàn)26</p><p> 4.1.1 書籍借閱
10、26</p><p> 4.1.2 書籍歸還28</p><p><b> 結(jié) 論30</b></p><p><b> 致 謝30</b></p><p><b> 參考文獻(xiàn)31</b></p><p><b> 第1章
11、 緒 論</b></p><p> 隨著社會經(jīng)濟(jì)的迅速發(fā)展和科學(xué)技術(shù)的全面進(jìn)步,計算機(jī)事業(yè)的飛速發(fā)展,以計算機(jī)與通信技術(shù)為基礎(chǔ)的信息系統(tǒng)正處于蓬勃發(fā)展的時期。隨著經(jīng)濟(jì)文化水平的顯著提高,人們對生活質(zhì)量及工作環(huán)境的要求也越來越高。書籍做為人類的精神食糧,在現(xiàn)代社會中越來越受到重視,大量的書籍出現(xiàn)在市場上,人們有了各種各樣不同的選擇。與此同時,為了管理大量的圖書,圖書管理系統(tǒng)也大量的出現(xiàn),隨著圖書的
12、大量增加,其管理難度也越來越大,如何優(yōu)化管理也就成為了一個大眾化的問題。</p><p> 現(xiàn)已有的圖書管理系統(tǒng),其功能已十分強(qiáng)大,為了便于管理員對圖書管理系統(tǒng)進(jìn)行妥善的管理和讀者的查詢,圖書管理系統(tǒng)為管理員提供了管理員注冊、管理員切換、讀者添加、讀者修改、讀者查詢、讀者刪除、新書入庫等功能,為讀者提供了書籍查詢、讀者借閱信息查詢、書籍歸還查詢等很多功能。</p><p> 大學(xué)為我們
13、提供了自由的學(xué)習(xí)環(huán)境,使我們有更多的時間到圖書館借閱書籍,讓我們可以隨時掌握各方面的知識,不斷提高自我、充實(shí)自我,但由于圖書館藏書成千上萬,我們很難一本一本的去查找自己感興趣的書籍,因此我們會經(jīng)常用到學(xué)校為我們提供的圖書管理系統(tǒng),用時間長了便對此產(chǎn)生了興趣,正好本次課程設(shè)計為我們提供了良好的機(jī)會,讓我們親自設(shè)計并實(shí)現(xiàn)了圖書管理系統(tǒng)的部分功能。</p><p> 設(shè)計一個圖書管理系統(tǒng)必不可少的必須對全管書籍進(jìn)行分
14、類匯總。而這就是我們所說的數(shù)據(jù)庫設(shè)計的第一階段:需求分析。在這一階段除了對具體情況諸如實(shí)行對管理員的管理、對讀者的管理、書籍管理、書籍的借閱與歸還、借閱超時等功能的實(shí)現(xiàn),還需要對用戶的需求進(jìn)行調(diào)查和分析,否則就失去了設(shè)計這個系統(tǒng)的意義了。</p><p> 對于界面的設(shè)計我們應(yīng)該追求的是:美觀、易讀性強(qiáng)、清晰度高;原則是:不能因?yàn)榭桃庾非竺烙^而以整個界面的清晰度的犧牲作為代價,不能為了清晰度而拋棄對易讀性的追求
15、。再設(shè)計的過程中我們應(yīng)該根據(jù)實(shí)際的情況進(jìn)行設(shè)計,做到具體問題具體分析,不刻意追求原則。</p><p> 在對應(yīng)的界面與Oracle數(shù)據(jù)庫建立連接,并實(shí)現(xiàn)對應(yīng)的SQL語句進(jìn)行實(shí)現(xiàn)將產(chǎn)生的結(jié)果顯示出來。并運(yùn)用捕捉異常的方法,將異常信息顯示出來。</p><p> 實(shí)現(xiàn)SQL語句的時候借助前臺開發(fā)工具中關(guān)于數(shù)據(jù)處理的控件來完成。對于讀者而言他們的需求是了解圖書的基本情況,自己的借閱情況???/p>
16、而言之就是實(shí)現(xiàn)對各個信息表的查詢。對于圖書管理員而言要實(shí)現(xiàn)的功能相對而言比較多,例如實(shí)現(xiàn)新書入庫、Oracle數(shù)據(jù)庫表的創(chuàng)建、系統(tǒng)的維護(hù)等等,這些都需要設(shè)計和實(shí)現(xiàn)的。</p><p> 第2章 系統(tǒng)功能介紹</p><p> 2.1系統(tǒng)功能介紹Use-Case圖 </p><p> 2.2 模塊功能介紹</p><p> 2.2.1
17、 管理員模塊功能介紹</p><p><b> 1. 管理員登陸</b></p><p> 這次做的所有界面都是通過插件可視化建立,而非代碼生成。管理登陸界面通過JPanel,JTextFiled,JButton控件組成,管理員通過輸入用戶名和密碼,通過了密碼確認(rèn)后,按登陸按鈕便可響應(yīng)事件,便進(jìn)入到運(yùn)行的主界面,實(shí)現(xiàn)讀者管理、書籍管理、書籍借閱與歸還、切換管理員功
18、能,也可以注冊管理員。</p><p><b> 管理員注冊</b></p><p> 用戶通過登陸界面的注冊按鈕進(jìn)入注冊界面,再輸入新的用戶名和密碼,如果輸入的用戶名表中已存在的話,提示:此用戶名已存在,否則注冊成功。</p><p><b> 管理員切換</b></p><p> 在進(jìn)入
19、主界面后,如果想要切換用戶,點(diǎn)擊“管理員切換”按鈕,便可跳轉(zhuǎn)到登陸界面,用新的用戶名和密碼進(jìn)行登陸。</p><p> 2.2.2 讀者管理模塊功能介紹</p><p><b> 讀者添加</b></p><p> 此模塊主要的實(shí)現(xiàn)功能是添加新的讀者信息,即當(dāng)有新的讀者要看查看本圖書館中的書藉,可以通過此功能實(shí)現(xiàn),當(dāng)數(shù)據(jù)庫中存在其新信息,
20、即成為本圖書館的新一位讀者。管理員可通過點(diǎn)擊“讀者添加”按鈕進(jìn)入讀者添加界面,輸入圖書證號、姓名、性別、院系和班級進(jìn)行添加。</p><p><b> 讀者修改</b></p><p> 此模塊主要實(shí)現(xiàn)的是對已有的讀者信息的修改。管理員選定要修改的舊的圖書證號,輸入新的圖書證號、姓名、性別、院系和班級進(jìn)行修改,同時可以返回上一級和退出修改界面。</p>
21、<p><b> 讀者查詢</b></p><p> 此模塊主要實(shí)現(xiàn)的功能是對現(xiàn)有的讀者進(jìn)行查詢。用戶可以選擇不同的方式進(jìn)行查詢,包括:所有查詢、按圖書證號查詢、按姓名查詢、按院系查詢和按班級查詢。在選擇了查詢方式后在文本框中輸入查詢的關(guān)鍵子,點(diǎn)擊”確定“按鈕,便可在界面的表上顯示得到的查詢結(jié)果。同時可以返回上一級和退出查詢界面。</p><p>&
22、lt;b> 4. 讀者的修改</b></p><p> 此模塊主要實(shí)現(xiàn)的功能是刪除已有的讀者。用戶可以選擇不同的方式刪除。包括:按圖書證號刪除和按姓名刪除。同時可以返回上一級和退出刪除界面。</p><p> 2.2.3 書籍管理模塊功能介紹</p><p><b> 新書入庫</b></p><p
23、> 此模塊主要實(shí)現(xiàn)的功能是在Book表中添加新的數(shù)據(jù)。用戶通過輸入圖書的書號、書名、作者、出版社、入(出)庫時間、是否可以借閱以及價格,在圖書庫中添加一本新的圖書。同時可以返回上一級和退出刪除界面。</p><p><b> 圖書查閱</b></p><p> 此模塊主要實(shí)現(xiàn)的功能是對已有圖書的查閱。用戶可以按照自己的需求來查詢想要的圖書。本系統(tǒng)由Java
24、和Oracle共同實(shí)現(xiàn),界面包括查詢方式、關(guān)鍵詞和顯示結(jié)果的表格組成。選擇不同的查詢方式:按圖書書號查詢、按書名查詢、按出版社查詢、按作者查詢,通過輸入不同的關(guān)鍵字,得到不同的查詢結(jié)果。</p><p> 2.2.4 書籍借閱與歸還功能模塊介紹</p><p><b> 書籍借閱</b></p><p> 此模塊主要實(shí)現(xiàn)的是讀者可憑有效的
25、圖書證號借閱圖書。用戶通過輸入自己的圖書證號、想要借閱圖書的書號、借閱日期和歸還日期,便可成功。</p><p><b> 書籍歸還</b></p><p> 此模塊主要實(shí)現(xiàn)讀者歸還書籍的功能,輸入自己有效的圖書證號、借閱圖書的書號、借閱日期和歸還日期,便可歸還成功。</p><p><b> 數(shù)據(jù)庫設(shè)計</b>&l
26、t;/p><p> 3.1 數(shù)據(jù)庫需求分析</p><p> Admin 表,及管理員表,記錄管理員的用戶名和密碼。</p><p> Book表,及圖書表,記錄了書號、書名、作者、出版社、入庫時間、出庫時間、是否可借閱、價格。</p><p> Person表,及讀者表,記錄了圖書證號、讀者姓名、性別、院系、班級。</p>
27、<p> Bookback表,及圖書借閱表,記錄了書號、圖書證號、借閱日期、歸還日期。</p><p> Bookborrow表,及圖書歸還表,記錄了書號、圖書證號、借閱日期、歸還日期。</p><p> 3.2 書籍庫概念設(shè)計</p><p> 圖書管理系統(tǒng)的E-R圖,如下</p><p> 3.3數(shù)據(jù)庫表的設(shè)計<
28、;/p><p><b> 1.Admin 表</b></p><p><b> 2.Book表</b></p><p><b> 3.Person表</b></p><p> 4.Bookback表</p><p> 5.Bookborrow表&l
29、t;/p><p><b> 系統(tǒng)功能實(shí)現(xiàn)</b></p><p> 4.1 管理員模塊功能實(shí)現(xiàn)</p><p> 4.1.1 管理員登陸</p><p> 用戶輸入用戶名和密碼進(jìn)入系統(tǒng)。登陸界面如下:</p><p><b> 主要程序代碼:</b></p>
30、<p><b> //監(jiān)聽類</b></p><p> class Presslog implements ActionListener</p><p><b> {</b></p><p> // TODO 自動生成的方法存根</p><p> int iflogin(St
31、ring username,String password)</p><p><b> {</b></p><p><b> //連接數(shù)據(jù)庫</b></p><p> Connection ct = null;</p><p><b> //數(shù)據(jù)庫結(jié)果集</b><
32、/p><p> ResultSet rs = null;</p><p> //預(yù)編譯的sql語句</p><p> PreparedStatement ps = null;</p><p> String str = "select password from users where username ='"
33、</p><p> + username + "'";</p><p> String res = null;</p><p><b> try{</b></p><p><b> //連接數(shù)據(jù)庫</b></p><p> ct = ne
34、w ConnOracle().GetConn();</p><p> //去數(shù)據(jù)庫表的信息</p><p> ps = ct.prepareStatement(str);</p><p> rs = ps.executeQuery();</p><p> while(rs.next())</p><p><
35、;b> {</b></p><p> res = (String)rs.getString(1);</p><p><b> }</b></p><p> if(res != null && res.equals(password)) </p><p><b> re
36、turn 1;</b></p><p><b> else</b></p><p><b> return 0;</b></p><p> } catch(Exception e){</p><p> e.printStackTrace();</p><p&g
37、t;<b> return 0;</b></p><p> } finally{</p><p><b> try{</b></p><p> if(rs != null)rs.close();</p><p> if(ps != null)ps.close();</p>&
38、lt;p> if(ct != null)ct.close();</p><p> } catch(Exception e){</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p>
39、<p><b> }</b></p><p> public void actionPerformed(ActionEvent e)</p><p><b> {</b></p><p> String username,password,password1;</p><p>
40、 username = jtf1.getText().toString();</p><p> password = new String(jtf2.getPassword());</p><p> password1 = new String(jtf3.getPassword());</p><p> //if(iflogin(username,passwo
41、rd) == 1 && password == password1))</p><p> if(iflogin(username,password) == 1)</p><p><b> {</b></p><p> if(password.equals(password1))</p><p>&l
42、t;b> {</b></p><p> new MainFrame().setVisible(true);</p><p> dispose();</p><p><b> }</b></p><p><b> else</b></p><p>
43、 JOptionPane.showMessageDialog(null, "兩次輸入的密碼不一致!","",JOptionPane.INFORMATION_MESSAGE);</p><p><b> }</b></p><p><b> else</b></p><p><
44、;b> {</b></p><p> JOptionPane.showMessageDialog(null, "用戶名或密碼錯誤?。?quot;,"",JOptionPane.INFORMATION_MESSAGE);</p><p><b> }</b></p><p><b>
45、 }</b></p><p><b> }</b></p><p><b> //注冊</b></p><p> class PressRegister implements ActionListener{</p><p><b> @Override</b&g
46、t;</p><p> public void actionPerformed(ActionEvent e) {</p><p> new AdminRegister().setVisible(true);</p><p> dispose();</p><p> // TODO 自動生成的方法存根</p><p&
47、gt;<b> }</b></p><p><b> }</b></p><p><b> //退出</b></p><p> class PressCancel implements ActionListener</p><p><b> {</b&
48、gt;</p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO 自動生成的方法存根</p><p> dispose();</p><p><b
49、> }</b></p><p><b> }</b></p><p> 4.1.2 管理員注冊</p><p> 功能介紹:該程序主要實(shí)現(xiàn)管理員的添加,以便于讓實(shí)行對圖書管理員的管理。按照標(biāo)簽提示輸入信息,然后點(diǎn)擊確定按鈕,如果符合規(guī)則,再到Admin表中進(jìn)行查詢,如果相同則用提示框提示錯誤。若無相同則可注冊。<
50、/p><p><b> 主要程序代碼:</b></p><p><b> //監(jiān)聽類</b></p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) {</p>
51、<p> // TODO 自動生成的方法存根</p><p> if(e.getSource() == jb1)</p><p><b> {</b></p><p><b> //返回上一級</b></p><p> new Login().setVisible(true)
52、;</p><p> dispose();</p><p><b> }</b></p><p> else if(e.getSource() == jb2)</p><p><b> {</b></p><p><b> //注冊</b>&l
53、t;/p><p> Connection ct = null;</p><p><b> //普通建立</b></p><p> //PreparedStatement ps = null;</p><p> //調(diào)用存儲過程建立的CallableStatement</p><p> Cal
54、lableStatement ps = null;</p><p> PreparedStatement ps1 = null;</p><p> String s1 = jtf1.getText();</p><p> String s2 = jtf2.getText();</p><p><b> try{</b&
55、gt;</p><p> ct = new ConnOracle().GetConn();</p><p> String st = "select userName from Admin";</p><p> ps1 = ct.prepareStatement(st);</p><p> rs = ps1.exe
56、cuteQuery();</p><p> if(rs.next())</p><p><b> {</b></p><p> //將jtf1中得到的字符串與表中查詢得到的用戶名比較,如果一致說明此用戶已存在</p><p> String user = rs.getString(1);</p>&
57、lt;p> if(s1.equals(user))</p><p><b> {</b></p><p> JOptionPane.showMessageDialog(null, "此用戶名已存在!","",JOptionPane.INFORMATION_MESSAGE);</p><p>
58、<b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> ct = new ConnOracle().GetConn();</p><p> //String str = ("insert in
59、to Admin (?,?)");</p><p> //ps = ct.prepareStatement(str);</p><p> ps = ct.prepareCall("{call PROCEDURE2(?,?)}");</p><p> ps.setString(1, s1);</p><p>
60、 ps.setString(2, s2);</p><p> ps.executeUpdate();</p><p> JOptionPane.showMessageDialog(null, "注冊成功!","",JOptionPane.INFORMATION_MESSAGE);</p><p><b> }
61、</b></p><p><b> }</b></p><p> } catch(Exception ex){</p><p> ex.printStackTrace();</p><p><b> }finally{</b></p><p><b&
62、gt; try {</b></p><p> if(ps != null)ps.close();</p><p> if(ct != null)ct.close();</p><p> } catch (Exception ex) {</p><p> // TODO 自動生成的 catch 塊</p>&
63、lt;p> ex.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> else if(e.getSource() == jb3)</p&g
64、t;<p><b> {</b></p><p><b> //清空</b></p><p> jtf1.setText(null);</p><p> jtf2.setText(null);</p><p><b> }</b></p>
65、<p><b> }</b></p><p> 4.1.3 管理員切換</p><p> 當(dāng)用戶進(jìn)入到系統(tǒng)后,如果想要切換管理員,點(diǎn)擊“管理員切換”按鈕,便可返回到登陸界面,通過輸入新的用戶名和密碼進(jìn)入到系統(tǒng)。界面設(shè)計如下:</p><p><b> 主要程序代碼如下:</b></p>&l
66、t;p><b> //管理員切換</b></p><p> class PressAdminchange implements ActionListener</p><p><b> {</b></p><p> public void actionPerformed(ActionEvent e) {<
67、/p><p> // TODO 自動生成的方法存根</p><p> new Login().setVisible(true);</p><p> dispose();</p><p><b> }</b></p><p><b> }</b></p>&
68、lt;p> 4.2 讀者管理模塊功能實(shí)現(xiàn)</p><p> 4.1.1 讀者添加</p><p> 管理員在文本框中輸入相關(guān)信息,建立新的讀者,以便使其可以進(jìn)入圖書系統(tǒng)閱覽圖書,讀者添加界面如下:</p><p><b> 主要程序代碼:</b></p><p><b> @Override&l
69、t;/b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO 自動生成的方法存根</p><p> if(e.getSource() == jb1)</p><p><b> {</b></p><
70、;p> new ResderServe().setVisible(true);</p><p><b> }</b></p><p> else if(e.getSource() == jb2)</p><p><b> {</b></p><p><b> //實(shí)現(xiàn)添加&
71、lt;/b></p><p> Connection ct = null;</p><p> PreparedStatement ps = null;</p><p><b> try{</b></p><p> ct = new ConnOracle().GetConn();</p><
72、;p> //添加數(shù)據(jù)庫表的信息</p><p> String str = "insert into person values(?,?,?,?,?)";</p><p> ps = ct.prepareStatement(str);</p><p> ps.setString(1, jtf1.getText());</p&g
73、t;<p> ps.setString(2, jtf2.getText());</p><p> ps.setString(3, jtf3.getText());</p><p> ps.setString(4, jtf4.getText());</p><p> ps.setString(5, jtf5.getText());</p&g
74、t;<p> ps.executeUpdate();</p><p> //this.dispose();</p><p> JOptionPane.showMessageDialog(null, "添加成功","",JOptionPane.INFORMATION_MESSAGE);</p><p>
75、}catch(Exception ex){</p><p> ex.printStackTrace();</p><p> } finally{</p><p><b> try{</b></p><p> if(ps != null)ps.close();</p><p> if(ct
76、 != null)ct.close();</p><p> }catch(Exception ex){</p><p> ex.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p><b
77、> }</b></p><p><b> //</b></p><p> else if(e.getSource() == jb3)</p><p><b> {</b></p><p><b> //退出</b></p><p&
78、gt; dispose();</p><p><b> }</b></p><p><b> }</b></p><p> 4.1.2 讀者修改</p><p> 管理員在文本框中輸入相關(guān)信息,修改已有圖書證號的讀者的信息,獲得新的讀者信息,讀者修改界面如下:</p><
79、;p><b> 主要程序代碼:</b></p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> String s1,s2,s3,s4,s5,s6,s7;</p><p
80、><b> //舊的圖書證號</b></p><p> s1 = jtf1.getText();</p><p><b> //新的圖書證號</b></p><p> s2 = jtf2.getText();</p><p> s3 = jtf3.getText();</p&g
81、t;<p> s4 = jtf4.getText();</p><p> s5 = jtf5.getText();</p><p> s6 = jtf6.getText();</p><p> // TODO 自動生成的方法存根</p><p> if(e.getSource() == jb1)</p>
82、<p><b> {</b></p><p> new ResderServe().setVisible(true);</p><p><b> }</b></p><p> if(e.getSource() == jb2)</p><p><b> {</b&g
83、t;</p><p><b> //實(shí)現(xiàn)修改</b></p><p> Connection ct = null;</p><p> PreparedStatement ps = null;</p><p> PreparedStatement ps1 = null;</p><p>&l
84、t;b> try{</b></p><p> ct = new ConnOracle().GetConn();</p><p> String st = "select cardNum from person";</p><p> ps1 = ct.prepareStatement(st);</p><
85、;p> rs = ps1.executeQuery();</p><p> if(rs.next())</p><p><b> {</b></p><p> //將jtf1中得到的字符串與表中查詢得到的用戶名比較,如果一致說明此用戶已存在</p><p> String user = rs.getStr
86、ing(1);</p><p> if(!(s1.equals(user)))</p><p><b> {</b></p><p> JOptionPane.showMessageDialog(null, "此用戶名不存在!","",JOptionPane.INFORMATION_MESSAGE)
87、;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> ct = new ConnOracle().GetConn();</p><p> String
88、str = "update person set cardNum = ?,readerName = ?,readerSex = ?,readerDept = ?,readerClass = ? where cardNum = ?";</p><p> ps = ct.prepareStatement(str);</p><p> ps.setString(1, s2
89、);</p><p> ps.setString(2, s3);</p><p> ps.setString(3, s4);</p><p> ps.setString(4, s5);</p><p> ps.setString(5, s6);</p><p> ps.setString(6, s1);<
90、;/p><p> ps.executeUpdate();</p><p> JOptionPane.showMessageDialog(null, "修改成功","",JOptionPane.INFORMATION_MESSAGE);</p><p><b> }</b></p><
91、p><b> }</b></p><p> } catch(Exception ex){</p><p> ex.printStackTrace();</p><p> } finally{</p><p><b> try{</b></p><p> if
92、(ps != null)ps.close();</p><p> if(ct != null)ct.close();</p><p> }catch(Exception ex)</p><p><b> {</b></p><p> ex.printStackTrace();</p><p&g
93、t;<b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> if(e.getSource() == jb3)</p><p><b> {</b></p><p>
94、; dispose();</p><p><b> }</b></p><p><b> }</b></p><p> 4.1.3 讀者查詢</p><p> 管理員選擇不同的查詢方式,以及輸入相應(yīng)的關(guān)鍵字進(jìn)行查詢,讀者查詢界面如下:</p><p><b&g
95、t; 主要程序代碼:</b></p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO 自動生成的方法存根</p><p> if(e.getSource() =
96、= jb1)</p><p><b> {</b></p><p> new ResderServe().setVisible(true);</p><p> dispose();</p><p><b> }</b></p><p> else if(e.getS
97、ource() == jb2)</p><p><b> {</b></p><p><b> //查詢</b></p><p> String str1 = (String)jcb1.getSelectedItem();</p><p> if(str1.trim().equals(&qu
98、ot;所有查找"))</p><p><b> {</b></p><p> tm = new TableModel();</p><p> jt.setModel(tm);</p><p><b> }</b></p><p><b> el
99、se</b></p><p><b> {</b></p><p> if(str1.trim().equals("按圖書證號查找"))str1 = "cardNum";</p><p> if(str1.trim().equals("按姓名查找"))str1 = &
100、quot;readerName";</p><p> if(str1.trim().equals("按院系查找"))str1 = "readerDept";</p><p> if(str1.trim().equals("按班級查找"))str1 = "readerClass";</p>
101、;<p> String str2 = jtf1.getText().trim();</p><p> String str = "select * from person where " + str1 + "='" + str2 + "'";</p><p> tm = new TableMo
102、del(str);</p><p> jt.setModel(tm);</p><p><b> }</b></p><p><b> }</b></p><p> else if(e.getSource() == jb3)</p><p><b> {&
103、lt;/b></p><p> dispose();</p><p><b> }</b></p><p><b> }</b></p><p> 4.1.4 讀者刪除</p><p> 管理員選擇不同的刪除方式,以及輸入相應(yīng)的關(guān)鍵字進(jìn)行刪除,讀者刪除界面如下
104、:</p><p><b> 主要程序代碼:</b></p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO 自動生成的方法存根</p>
105、<p> if(e.getSource() == jb1)</p><p><b> {</b></p><p> new ResderServe().setVisible(true);</p><p> dispose();</p><p><b> }</b></p&g
106、t;<p> else if(e.getSource() == jb2)</p><p><b> {</b></p><p><b> //刪除</b></p><p> Connection ct = null;</p><p> PreparedStatement ps
107、 = null;</p><p> PreparedStatement ps1 = null;</p><p><b> //選擇刪除方式</b></p><p> String str1 = (String)jcb1.getSelectedItem();</p><p> if(str1.equals(&quo
108、t;按圖書證號刪除"))</p><p><b> {</b></p><p> String str2 = jtf1.getText();</p><p><b> try{</b></p><p> ct = new ConnOracle().GetConn();<
109、/p><p> String str = "delete from person where cardNum = ?";</p><p> ps = ct.prepareStatement(str);</p><p> ps.setString(1,str2);</p><p> ps.executeUpdate();
110、</p><p> JOptionPane.showMessageDialog(null, "刪除成功","",JOptionPane.INFORMATION_MESSAGE);</p><p> }catch (SQLException e1) {</p><p> // TODO 自動生成的 catch 塊<
111、/p><p> e1.printStackTrace();</p><p><b> }finally{</b></p><p><b> try{</b></p><p> if(ps1 != null)ps1.close();</p><p> if(ps != n
112、ull)ps.close();</p><p> if(ct != null)ct.close();</p><p> }catch(Exception ex){</p><p> ex.printStackTrace();</p><p><b> }</b></p><p><b
113、> }</b></p><p><b> }</b></p><p> else if(str1.equals("按姓名刪除"))</p><p><b> {</b></p><p><b> try {</b></p&g
114、t;<p> String str2 = jtf1.getText();</p><p> ct = new ConnOracle().GetConn();</p><p> String str = "delete from person where readerName = ?";</p><p> ps = ct.pr
115、epareStatement(str);</p><p> ps.setString(1,str2);</p><p> ps.executeUpdate();</p><p> JOptionPane.showMessageDialog(null, "刪除成功","",JOptionPane.INFORMATION_M
116、ESSAGE);</p><p> } catch (Exception e1) {</p><p> // TODO 自動生成的 catch 塊</p><p> e1.printStackTrace();</p><p><b> }finally{</b></p><p><b
117、> try{</b></p><p> if(ps1 != null)ps1.close();</p><p> if(ps != null)ps.close();</p><p> if(ct != null)ct.close();</p><p> }catch(Exception ex){</p>
118、<p> ex.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> else </b></p>
119、<p><b> {</b></p><p> JOptionPane.showMessageDialog(null, "請輸入正確的關(guān)鍵詞","",JOptionPane.INFORMATION_MESSAGE);</p><p><b> }</b></p><p
120、><b> }</b></p><p> else if(e.getSource() == jb3)</p><p><b> {</b></p><p><b> //退出</b></p><p> dispose();</p><p>
121、;<b> }</b></p><p><b> }</b></p><p> 4.2 書籍管理模塊功能實(shí)現(xiàn)</p><p> 4.1.1 新書入庫</p><p> 用戶輸入相關(guān)的信息,可將一本新的圖書保存在圖書系統(tǒng)中,新書入庫的界面如下:</p><p><
122、;b> 主要程序代碼:</b></p><p><b> //監(jiān)聽類</b></p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO
123、 自動生成的方法存根</p><p> if(e.getSource() == jb1)</p><p><b> {</b></p><p> new BookServe().setVisible(true);</p><p> dispose();</p><p><b>
124、 }</b></p><p> else if(e.getSource() == jb2)</p><p><b> {</b></p><p><b> //新書入庫</b></p><p> Connection ct = null;</p><p>
125、 PreparedStatement ps = null;</p><p><b> try{</b></p><p> ct = new ConnOracle().GetConn();</p><p> //添加數(shù)據(jù)庫表的信息</p><p> String str = "insert into b
126、ook values(?,?,?,?,?,?,?,?)";</p><p> ps = ct.prepareStatement(str);</p><p> ps.setString(1, jtf1.getText());</p><p> ps.setString(2, jtf2.getText());</p><p>
127、ps.setString(3, jtf3.getText());</p><p> ps.setString(4, jtf4.getText());</p><p> ps.setString(5, jtf5.getText());</p><p> ps.setString(6, jtf6.getText());</p><p>
128、ps.setString(7, jtf7.getText());</p><p> ps.setString(8, jtf8.getText());</p><p> ps.executeUpdate();</p><p> //this.dispose();</p><p> JOptionPane.showMessageDialo
129、g(null, "添加成功","",JOptionPane.INFORMATION_MESSAGE);</p><p> }catch(Exception ex){</p><p> ex.printStackTrace();</p><p> } finally{</p><p><b&
130、gt; try{</b></p><p> if(ps != null)ps.close();</p><p> if(ct != null)ct.close();</p><p> }catch(Exception ex){</p><p> ex.printStackTrace();</p><p
131、><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> else if(e.getSource() == jb3)</p><p><b> {</b></p>&
132、lt;p> dispose();</p><p><b> }</b></p><p><b> }</b></p><p><b> ?。?lt;/b></p><p> 4.1.2 圖書查閱</p><p> 用戶選擇不同的查詢方式和輸入相
133、應(yīng)的關(guān)鍵字進(jìn)行查詢,界面如下:</p><p><b> 主要程序代碼:</b></p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO 自動生成的方法
134、存根</p><p> if(e.getSource() == jb1)</p><p><b> {</b></p><p><b> //返回上一級</b></p><p> new BookServe().setVisible(true);</p><p>
135、dispose();</p><p><b> }</b></p><p> if(e.getSource() == jb2)</p><p><b> {</b></p><p><b> //圖書查閱</b></p><p> String
136、 str1 = (String)jcb1.getSelectedItem();</p><p> if(str1.trim().equals("所有查找"))</p><p><b> {</b></p><p> tm = new TableModelBook();</p><p> jt
137、.setModel(tm);</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> if(str1.trim().equals("按書號查找"))str1 = &qu
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫課程設(shè)計報告----圖書管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告---圖書管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告---圖書管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告--圖書管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告-圖書管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告-------圖書管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告--圖書管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--- 圖書管理系統(tǒng)
- 圖書管理系統(tǒng)—數(shù)據(jù)庫課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計-圖書管理系統(tǒng)
- 圖書管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計--圖書管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計---圖書管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計---圖書管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計----圖書管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計---圖書管理系統(tǒng)
- 圖書管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計——圖書管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計---圖書管理系統(tǒng)
- 數(shù)據(jù)庫原理課程設(shè)計---圖書管理系統(tǒng)數(shù)據(jù)庫設(shè)計
評論
0/150
提交評論