數(shù)據(jù)庫課程設(shè)計報告-圖書管理系統(tǒng)_第1頁
已閱讀1頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論