版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 目 錄</b></p><p><b> 1.引言1</b></p><p><b> 1.1開發(fā)背景1</b></p><p> 1.2可行性分析1</p><p><b> 2.需求分析3</b><
2、;/p><p><b> 2.1設計要求3</b></p><p><b> 2.2設計目的3</b></p><p><b> 2.3功能實現(xiàn)4</b></p><p> 2.4數(shù)據(jù)要求:4</p><p><b> 3.總體設
3、計5</b></p><p><b> 3.1設計思想5</b></p><p> 3.2 數(shù)據(jù)庫設計5</p><p><b> 3.3處理流程7</b></p><p><b> 3.4總體結(jié)構8</b></p><p>
4、; 3.5功能分配10</p><p> 3.6主要模塊12</p><p> 4. 核心代碼實現(xiàn)14</p><p> 4.1 主函數(shù)界面設計的主要源程序14</p><p> 4.2核心模塊16</p><p><b> 5.測試分析27</b></p>
5、<p> 5.1圖書館信息測試27</p><p> 5.2插入測試28</p><p> 5.3刪除測試28</p><p> 5.4修改測試28</p><p> 5.5圖書借閱測試28</p><p> 5.6圖書歸還測試28</p><p> 5.7
6、圖書催還測試28</p><p> 6.課程設計總結(jié)28</p><p><b> 參考文獻29</b></p><p><b> 1.引言</b></p><p><b> 1.1開發(fā)背景</b></p><p> 隨著社會信息量的與日
7、俱增,作為信息存儲的主要媒體之一圖書,數(shù)量、規(guī)模比以往任何時候都大的多,不論個人還是圖書管理部門都需要使用方便而有效的方式來管理自己的書籍。目前大部分圖書館的圖書管理都處于一種館藏圖書量大,各書館所存圖書相類似,專業(yè)性圖書所占比例較小,管理方法簡單,圖書利用率低,管理成本又高。這就要求我們在信息技術高速發(fā)展的今天,圖書館管理運用網(wǎng)絡技術,通過信息系統(tǒng)的開發(fā),在圖書館之間互通有無,有利于提高圖書的利用率。</p><p
8、> 在計算機日益普及的今天,對個人而言若采用一套行之有效的圖書管理系統(tǒng)來管理自己的書籍,會方便許多。對圖書管理部門而言,以前單一的手工檢索已不能滿足人們的要求,為了便于圖書資料的管理需要有效的圖書管理軟件。 圖書館管理系統(tǒng)是一套功能比較完善的數(shù)據(jù)管理軟件,具有數(shù)據(jù)操作方便高效迅速等優(yōu)點。該軟件采用功能強大的java語言進行開發(fā),具有很好的可移植性,可在應用范圍較廣的DOS、WINDOWS系列等操作系統(tǒng)上使用。</p
9、><p><b> 1.2可行性分析</b></p><p> 可行性分析是在進行初步調(diào)查后所進行的對系統(tǒng)開發(fā)必要性和可能性的研究,所以也稱為可行性研究??梢詮募夹g可行性,經(jīng)濟可行性和社會可行性三方面來論證。通過長時間的觀察與實踐,我認為圖書館管理系統(tǒng)的可行性分析如下:</p><p> 1.2.1.經(jīng)濟可行性</p><
10、p> 能夠準確快速的記錄圖書的狀態(tài),實時了解圖書是否被借、是否歸還、是否借出超期等信息,并且功能齊全,數(shù)據(jù)共享,操作簡便,可靠性好,穩(wěn)定快速,用戶界面友好。</p><p> 圖書館管理系統(tǒng)是圖書館數(shù)字化管理的一個重要步驟,它實現(xiàn)了圖書、在館工作人員與讀者信息的信息化管理,擺脫了以往的人工操作的許多不便。本系統(tǒng)將協(xié)助圖書館進行各項業(yè)務,方便讀者的借閱、信息查詢,而且,也將大大提高了圖書館信息資源的利用率
11、,也使得讀者能夠更加方便的對圖書進行個性化的管理。</p><p> 1.2.2.技術可行性</p><p> 圖書館管理系統(tǒng)的工作主要是在讀者和圖書館之間架起一座橋梁,能相互溝通信息和處理信息等信息。 這一特點非常適合計算機特點,通過eclipse軟件,發(fā)揮計算機的信息傳輸速度快、準確度高的優(yōu)勢。</p><p> 通過調(diào)查分析開發(fā)圖書館管理系統(tǒng)應具有的功能
12、、性能及讀者的需求,確定總體結(jié)構,利用ACCESS數(shù)據(jù)庫的優(yōu)勢,以最簡潔最容易的方法,使用java編寫程序使其成為一個初級的系統(tǒng)軟件。</p><p> 1.2.3運行可行性</p><p> 系統(tǒng)采用完全的圖形化界面,易于管理,方便管理者查詢設備信息,能夠滿足使用者的要求。該系統(tǒng)應該提供簡單的操作界面,能夠快速的實現(xiàn)查書、借書、還書功能。</p><p>&l
13、t;b> 2.需求分析</b></p><p><b> 2.1設計要求</b></p><p> 1).能夠存儲一定數(shù)量的圖書信息,并方便有效的進行相應的書籍數(shù)據(jù)操作和管理,這主要包括: a、圖書信息的錄入、刪除及修改。 b、圖書信息的多關鍵字檢索查詢。 c、圖書的出借、返還。2).能夠?qū)σ欢〝?shù)量的讀者進行相應的信息
14、存儲與管理,這其中包括: a、讀者信息的插入、刪除及修改。 b、讀者資料的統(tǒng)計與查詢。</p><p> c、讀者的借書和還書信息情況3).能夠?qū)π枰膱D書統(tǒng)計結(jié)果提供列表顯示輸出并進行瀏覽。</p><p> 4). 能夠連接數(shù)據(jù)庫與圖書館軟件方便進行一些管理。</p><p> 5). 能夠?qū)崿F(xiàn)圖書館借閱系統(tǒng)軟件的實施。</p&
15、gt;<p><b> 2.2設計目的</b></p><p> 一個更為完善的圖書管理系統(tǒng),是為了提供更為便捷與強大的信息查詢功能,如圖書信息,讀者信息的查詢;方便信息的修改,如圖書信息,讀者信息的修改;實現(xiàn)借書還書基本功能;對信息的保護手段設置僅限于與數(shù)據(jù)庫的連接。系統(tǒng)采用完全的圖形化界面,易于管理,方便管理者查詢設備信息,能夠滿足使用者的要求。</p>
16、<p> 通過項目的學習和綜合實訓,能夠熟練掌握運用Java語言進行桌面應用程序開發(fā)的基本知識和技能;熟練掌握JAVA的基本語法與數(shù)據(jù)庫技術的應用;進一步熟悉ACCESS數(shù)據(jù)庫的數(shù)據(jù)庫管理。</p><p><b> 2.3功能實現(xiàn)</b></p><p> 隨著圖書的日益增多,傳統(tǒng)的手工圖書管理不僅工作量大,而且容易出現(xiàn)問題。圖書管理設計的內(nèi)容非常復
17、雜而且繁多,比如擁有圖書信息錄入管理、讀者信息管理、圖書借閱管理和歸還管理,圖書的查詢和修改等。 由于系統(tǒng)主要是為方便管理員定制開發(fā)的,因此針對圖書管理的實際工作而言,經(jīng)過了反復地論證,最終確定了圖書管理系統(tǒng)的設計方案,圖書管理系統(tǒng)的主要功能為:</p><p> 該系統(tǒng)主要建立一個基于C/S模式的圖書管理系統(tǒng),面對當今很多小型圖書管理仍是人工管理帶來的檢索速度慢,效率低,借閱歸還圖書量大,圖書統(tǒng)計工作量大,藏
18、書不能完成及時更新的問題,該系統(tǒng)可以對兩個不同的用戶類型實現(xiàn)不同的功能:</p><p> 1.對于圖書館工作人員能夠方便的對圖書信息的管理,可以增加、修改、刪除圖書,豐富具體圖書的信息,對不同圖書進行分類操作;可以根據(jù)圖書書號等基本信息進行借書和還書的操作;對讀者的信息進行增加、修改、刪除,以及讀者的的信息統(tǒng)計來實現(xiàn)對讀者的管理;可以查詢圖書相關資料、當前借閱情況以及對一些參數(shù)的管理。</p>
19、<p> 2.對于讀者在本系統(tǒng)的應用下可實現(xiàn)按照各種方式(如:書名, ISBN號)查詢圖書館的藏書情況,能夠查詢自己的借閱圖書情況,也能查詢自己的信息 (如學號、姓名等)和更新自己的信息以便對自己的信息進行管理。</p><p><b> 2.4數(shù)據(jù)要求:</b></p><p> 輸入圖書及用戶的基本信息。用戶查詢時輸出圖書及用戶基本信息和用戶借書信
20、息。</p><p><b> 3.總體設計</b></p><p><b> 3.1設計思想</b></p><p> 整個系統(tǒng)制造的而過程中,涉及了較多java語言知識點,對于不同的數(shù)據(jù)類型、程序控制結(jié)構、數(shù)據(jù)結(jié)構作以分析和總結(jié),并結(jié)合這個課題進行綜合的應用,在一定程度上做到了對所學知識融會貫通。進一步加深、鞏固
21、了所學的專業(yè)的基本理論知識,培養(yǎng)了綜合分析問題、解決問題的能力。在設計程序時,實現(xiàn)了程序的模塊化、結(jié)構化。在主函數(shù)中調(diào)用各種子函數(shù),操作界面全面簡單,易操作。</p><p><b> 3.2 數(shù)據(jù)庫設計</b></p><p> 3.2.1 數(shù)據(jù)庫需求分析 </p><p> 本系統(tǒng)的數(shù)據(jù)庫應該分為三個部分:學生信息部分、圖書信息部分
22、和綜合操作部分。 </p><p> 3.2.2 數(shù)據(jù)庫概念結(jié)構設計</p><p> 圖3.1 圖書館管理系統(tǒng)的數(shù)據(jù)庫E-R圖</p><p> 3.2.3數(shù)據(jù)庫表設計 </p><p> 針對本系統(tǒng)的特點,在對所搜集的數(shù)據(jù)進行規(guī)范化之后,定義了如下三張表格,分別是Books表,Books_Log表,student表。通過對這三張
23、表格的操作可以較好地完成系統(tǒng)設計的各項功能,三張表格之間有著不同程度的聯(lián)系。</p><p><b> 3.3處理流程</b></p><p> 1)、按書名查詢圖書</p><p><b> 2)、修改學生</b></p><p><b> 3.4總體結(jié)構</b>&l
24、t;/p><p> 該系統(tǒng)在eclipse軟件環(huán)境下,主要采用java開發(fā)語言,access數(shù)據(jù)庫來設計,開發(fā)過程與成果應符合軟件工程術語,計算機軟件產(chǎn)品開發(fā)文件編制指南等。 </p><p> 3.4.1圖書管理系統(tǒng)總體結(jié)構圖 </p><p> 繪制系統(tǒng)結(jié)構圖的過程,實際上就是對系統(tǒng)功能模塊進行分解設計的過程,即合理地將數(shù)據(jù)流程圖轉(zhuǎn)變?yōu)樗枰南到y(tǒng)結(jié)構圖。 系
25、統(tǒng)結(jié)構圖將會使讀者和用戶能直觀的了解系統(tǒng)的結(jié)構模式,理解系統(tǒng)的各個功能的結(jié)構,能很好地方便用戶使用和理解整個系統(tǒng)。</p><p> 本系統(tǒng)的結(jié)構圖如下:</p><p><b> 圖 3.4.1</b></p><p><b> 3.5功能分配</b></p><p> 1.新書入庫:根據(jù)
26、軟件的功能調(diào)試出新書入庫界面,根據(jù)提示輸入圖書編號、圖書名稱、圖書描述、圖書單價、圖書類別、圖書總庫存量及目前庫存量,然后確認是否要入庫,確認入庫后完成圖書入庫功能。</p><p> 2. 新的學生入庫:根據(jù)軟件的功能調(diào)試出新的學生入庫界面,根據(jù)提示輸入學生學號和學生姓名,輸入完成確認是否要插入新生,確認后新生入庫成功。</p><p> 3.刪除圖書:根據(jù)軟件調(diào)試出的主函數(shù)界面瀏覽
27、輸出的圖書列表,進行選擇要刪除的圖書,選中后進行確認是否要刪除,確認后完成刪除圖書工作。</p><p> 4.刪除學生:根據(jù)軟件調(diào)試出的主函數(shù)界面瀏覽輸出的學生列表,進行選擇要刪除的學生,選中后進行確認是否要刪除,確認后完成刪除學生工作。</p><p> 5.修改圖書:根據(jù)軟件調(diào)試出的主函數(shù)界面并瀏覽輸出的圖書列表,選擇要修改的圖書,進行圖書編號、圖書名稱、圖書描述、圖書單價、圖書
28、類別、圖書總庫存量及目前庫存量等的修改,然后進行確認是否正確,完成修改圖書工作。</p><p> 6.修改學生:根據(jù)軟件調(diào)試出的主函數(shù)界面并瀏覽輸出的學生列表,選擇要修改的學生,確認修改然后對學生的姓名和學號進行修改,確認是否修改完成修改學生工作。</p><p> 7.按書號查詢圖書:根據(jù)軟件調(diào)試出的主函數(shù)界面點擊按書名查詢,根據(jù)此界面輸入要查詢的書名,查看查詢的書的信息情況。&l
29、t;/p><p> 8.按書名查詢圖書:根據(jù)軟件調(diào)試出的主函數(shù)界面點擊按書號查詢,根據(jù)此界面輸入要查詢的書號,查看查詢的書的信息情況。</p><p> 9.按學號查詢學生:根據(jù)軟件調(diào)試出的主函數(shù)界面點擊按學號查詢,根據(jù)此界面輸入要查詢的學生的學號,查看此學號的學生的信息。</p><p> 10.按姓名查詢學生:根據(jù)軟件調(diào)試出的主函數(shù)界面點擊按學生姓名查詢,根據(jù)
30、此界面輸入要查詢的學生的姓名,查看此姓名的學生的信息。</p><p> 11.瀏覽圖書:根據(jù)軟件調(diào)試出的主函數(shù)界面點擊查詢?nèi)缓鬄g覽圖書,查看圖書的詳細情況。</p><p> 12.借書:根據(jù)軟件調(diào)試出的主函數(shù)界面點擊借書根據(jù)提示輸入學號和姓名進行借書工作然后進行瀏覽該學生的借書詳細信息。</p><p> 13.還書:根據(jù)軟件調(diào)試出的主函數(shù)界面點擊還書根據(jù)
31、提示輸入學號和姓名進行還書工作然后進行瀏覽該學生的借書詳細信息,選擇要還的書點擊確定鍵歸還。</p><p> 14.催還:根據(jù)軟件調(diào)試出的主函數(shù)界面點擊催還表,顯示到期圖書的學生信息和借閱信息。</p><p><b> 3.6主要模塊</b></p><p><b> 3.6.1主界面</b></p>
32、<p><b> 3.6.2刪除學生</b></p><p><b> 3.6.3修改學生</b></p><p><b> 4. 核心代碼實現(xiàn)</b></p><p> 4.1 主函數(shù)界面設計的主要源程序</p><p> public class
33、MainJFrame extends JFrame implements ActionListener</p><p><b> { </b></p><p> public MainJFrame() //空文件的構造方法</p><p><b> { </b></
34、p><p> super("圖書館借閱系統(tǒng)"); </p><p> this.setBounds(400,300,400,300); //設置窗口位置及大小</p><p> this.setDefaultCloseOperation(EXIT_ON_CLOSE);
35、 //HIDE_ON_CLOSE 隱藏</p><p> JMenuBar menubar=new JMenuBar();</p><p> this.setJMenuBar(menubar); //菜單欄添加到框架窗口</p><p> String menustr[]={"插入","
36、;刪除","修改","查詢","借書","還書","催還表"};</p><p> JMenu menu[]=new JMenu[menustr.length];</p><p> for(int i=0;i<menu.length;i++)
37、 //菜單欄添加文件等若干菜單</p><p><b> {</b></p><p> menu[i]=new JMenu(menustr[i]); </p><p> menubar.add(menu[i]); </p><p><b>
38、 }</b></p><p> String menuitemstr1[]={"插入新書","插入學生"};</p><p> JMenuItem menuitem1[]=new JMenuItem[menuitemstr1.length];</p><p> for(int i=0;i<menuit
39、em1.length;i++) //文件菜單添加若干菜單項</p><p><b> {</b></p><p> menuitem1[i]=new JMenuItem(menuitemstr1[i]); </p><p> menu[0].add(menuitem1[i]);</p>
40、;<p> menuitem1[i].addActionListener(this); </p><p><b> }</b></p><p> String menuitemstr2[]={"刪除圖書","刪除學生"};</p><p> JM
41、enuItem menuitem2[]=new JMenuItem[menuitemstr2.length];</p><p> for(int i=0;i<menuitem2.length;i++) //文件菜單添加若干菜單項</p><p><b> {</b></p><p> menuitem2[i
42、]=new JMenuItem(menuitemstr2[i]); </p><p> menu[1].add(menuitem2[i]);</p><p> menuitem2[i].addActionListener(this); </p><p><b> }</b></
43、p><p> String menuitemstr3[]={"修改圖書","修改學生"};</p><p> JMenuItem menuitem3[]=new JMenuItem[menuitemstr3.length];</p><p> for(int i=0;i<menuitem3.length;i++)
44、 //文件菜單添加若干菜單項</p><p><b> {</b></p><p> menuitem3[i]=new JMenuItem(menuitemstr3[i]); </p><p> menu[2].add(menuitem3[i]);</p><p> menu
45、item3[i].addActionListener(this); </p><p><b> } </b></p><p> JMenu menu1=new JMenu("查詢圖書");</p><p> menu[3].add(menu1);</p><
46、;p> JMenuItem menuitem8=new JMenuItem("按書號查詢"); </p><p> menu1.add(menuitem8);</p><p> menuitem8.addActionListener(this);</p><p> JMenuItem menuitem9=new J
47、MenuItem("按書名查詢"); </p><p> menu1.add(menuitem9);</p><p> menuitem9.addActionListener(this);</p><p> JMenu menu2=new JMenu("查詢學生");</p><p&
48、gt; menu[3].add(menu2);</p><p> JMenuItem menuitem10=new JMenuItem("按學號查詢"); </p><p> menu2.add(menuitem10);</p><p> menuitem10.addActionListener(this);</p
49、><p> JMenuItem menuitem11=new JMenuItem("按姓名查詢"); </p><p> menu2.add(menuitem11);</p><p> menuitem11.addActionListener(this);</p><p> JMenuItem men
50、uitem4=new JMenuItem("瀏覽圖書");</p><p> menu[3].add(menuitem4);</p><p> menuitem4.addActionListener(this); </p><p> JMenuItem menuitem5=new JMenuItem("借書"
51、;); </p><p> menu[4].add(menuitem5);</p><p> menuitem5.addActionListener(this);</p><p> JMenuItem menuitem6=new JMenuItem("還書"); </p><p>
52、 menu[5].add(menuitem6);</p><p> menuitem6.addActionListener(this);</p><p> JMenuItem menuitem7=new JMenuItem("催還"); </p><p> menu[6].add(menuitem7);</p>
53、;<p> menuitem7.addActionListener(this);</p><p> JLabel jlabel=new JLabel("",new ImageIcon("Image\\圖書館.jpg"),JLabel.CENTER); </p><p> this.getContentPane().add(j
54、label,"Center");</p><p> this.setVisible(true);</p><p><b> }</b></p><p><b> 4.2核心模塊</b></p><p> 4.2.1刪除學生:</p><p> i
55、mport java.awt.*;</p><p> import java.awt.event.*;</p><p> import javax.swing.*;</p><p> import java.io.*;</p><p> import java.sql.*;</p><p> import j
56、ava.util.*;</p><p> public class DeleteStudentJFrame extends JFrame implements ActionListener</p><p><b> { </b></p><p> private JButton button;</p><p>
57、 private JPanel jpanel;</p><p> private JList jlist; //列表框,顯示圖書目錄</p><p> private String[] student;</p><p> private String jdbcDriver;//數(shù)據(jù)庫驅(qū)動</p><p> private Str
58、ing jdbcURL;//的數(shù)據(jù)庫連接</p><p> private String dbUserName;//數(shù)據(jù)庫用戶名</p><p> private String dbPassword;//數(shù)據(jù)庫密碼</p><p> public DeleteStudentJFrame(String jdbcDriver,String jdbcURL,Stri
59、ng dbUserName,String dbPassword) throws SQLException </p><p><b> { </b></p><p> super("刪除學生"); </p><p> this.se
60、tBounds(300,200,400,280); </p><p> this.setDefaultCloseOperation(HIDE_ON_CLOSE); //HIDE、EXIT</p><p> this.jdbcDriver=jdbcDriver;</p><p> this.jdbcURL=jdbcURL;</
61、p><p> this.dbUserName=dbUserName;</p><p> this.dbPassword=dbPassword;</p><p> JPanel jp=new JPanel(new GridLayout(2,1));</p><p> this.getContentPane().add(jp,"No
62、rth");</p><p> JLabel jlabel=new JLabel("刪除學生",JLabel.CENTER);</p><p> JLabel jlabel1=new JLabel("請選擇:",JLabel.LEFT);</p><p> jp.add(jlabel); jp.add
63、(jlabel1);</p><p> JPanel jp2=new JPanel();</p><p> this.button=new JButton("確定");</p><p> this.getContentPane().add(jp2,"South");</p><p> jp2.a
64、dd(button);</p><p> this.button.addActionListener(this);</p><p> jpanel=new JPanel();</p><p> this.getContentPane().add(jpanel,"Center");</p><p> initLibr
65、ary(); </p><p> this.setVisible(true);</p><p><b> }</b></p><p> public DeleteStudentJFrame() throws SQLException </p><p><b> {
66、</b></p><p> this("sun.jdbc.odbc.JdbcOdbcDriver","jdbc:odbc:library","library","library"); </p><p><b> }</b></p><p> pri
67、vate Connection getConnection() throws SQLException//獲取數(shù)據(jù)庫的連接</p><p><b> {</b></p><p><b> try</b></p><p><b> {</b></p><p> Class
68、.forName(jdbcDriver);</p><p><b> }</b></p><p> catch(ClassNotFoundException e)</p><p><b> {</b></p><p> throw new SQLException(e.getMessage(
69、));</p><p><b> }</b></p><p> return DriverManager.getConnection(jdbcURL,dbUserName,dbPassword);</p><p><b> }</b></p><p> private void closeR
70、esultSet(Connection conn,PreparedStatement stmt,ResultSet rs)//關閉數(shù)據(jù)庫ResultSet 、PreparedStatement、Connection</p><p><b> {</b></p><p><b> try</b></p><p><
71、b> {</b></p><p> if(rs!=null)rs.close();</p><p><b> }</b></p><p> catch(Exception e){}</p><p><b> try</b></p><p><
72、b> {</b></p><p> if(stmt!=null)stmt.close();</p><p><b> }</b></p><p> catch(Exception e){}</p><p><b> try</b></p><p>
73、<b> {</b></p><p> if(!conn.isClosed())conn.close();</p><p><b> }</b></p><p> catch(Exception e){}</p><p><b> }</b></p>&
74、lt;p> private void closeStatement(Connection conn,Statement stmt)//關閉數(shù)據(jù)庫PreparedStatement、Connection</p><p><b> {</b></p><p><b> try</b></p><p><b&g
75、t; {</b></p><p> if(stmt!=null)stmt.close();</p><p><b> }</b></p><p> catch(Exception e){}</p><p><b> try</b></p><p><
76、;b> {</b></p><p> if(!conn.isClosed())conn.close();</p><p><b> }</b></p><p> catch(Exception e){}</p><p><b> }</b></p><
77、p> public void initLibrary() throws SQLException//數(shù)據(jù)庫表重置</p><p><b> {</b></p><p> Connection conn=null ;</p><p> Statement stmt=null; //創(chuàng)建語句對象</p>
78、<p> ResultSet rset=null; //執(zhí)行數(shù)據(jù)查詢SELECT語句</p><p> ResultSetMetaData rsmd= null; </p><p><b> try</b></p><p><b> {</b></p>&l
79、t;p> conn=getConnection() ;</p><p> stmt=conn.createStatement(1004,1007); //創(chuàng)建語句對象</p><p> String sql="SELECT Student_ID,Student_Name FROM Student";</p><p>
80、; rset=stmt.executeQuery(sql); //執(zhí)行數(shù)據(jù)查詢SELECT語句</p><p> rsmd= rset.getMetaData(); //返回元數(shù)據(jù)對象 </p><p> int columns=rsmd.getColumnCount(); //獲得列數(shù)</p><p> int
81、rows=0; </p><p> while(rset.next()) //迭代遍歷結(jié)果集,獲得結(jié)果集總行數(shù)</p><p><b> rows++;</b></p><p> this.student=new String[rows];</p><p> String result
82、s[]=new String[rows]; //創(chuàng)建二維數(shù)組保存數(shù)據(jù)結(jié)果集</p><p> rset.beforeFirst(); //移動指針到第一行之前</p><p> for(int i=0;rset.next();i++) //從前向后訪問,獲得每行數(shù)據(jù) </p><p><b> {</b><
83、;/p><p> results[i]="";this.student[i]=rset.getString(1);</p><p> for(int j=1;j<=columns;j++)</p><p> results[i]+=" "+rset.getString(j); //獲得當前行指定列的值 <
84、;/p><p><b> }</b></p><p> this.jlist=new JList(results); //所有文件名字符串顯示在列表框中</p><p> jpanel.add(this.jlist);</p><p> closeStatement(conn,stmt);&
85、lt;/p><p><b> }</b></p><p> catch(Exception e){}</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e) //單擊事件處理方法</p>
86、<p><b> { </b></p><p> int i=this.jlist.getSelectedIndex();</p><p> //返回列表框第1個選中數(shù)據(jù)項的序號,從0開始;沒有選中時返回-1</p><p> if(i!=-1) </p><p><b> try<
87、;/b></p><p><b> {</b></p><p> if(JOptionPane.showConfirmDialog(this, "確實要刪除學號為:\""+this.student[i]+"\"的學生嗎?")==0)</p><p> this.delete
88、Student(this.student[i]); </p><p> this.setVisible(false);</p><p><b> } </b></p><p> catch(SQLException e1){}</p><p><b> }</b></p>&l
89、t;p> public void deleteStudent(String Student_ID) throws SQLException</p><p> {//刪除學生,同時刪除該學生的借閱記錄,這兩個操作在同一事務中</p><p> Connection conn=null;</p><p> PreparedStatement stmt=nu
90、ll;</p><p><b> try</b></p><p><b> {</b></p><p> conn=getConnection() ;</p><p> stmt=conn.prepareStatement("delete from Student where St
91、udent_ID=?");</p><p> stmt.setString(1,Student_ID);</p><p> stmt.executeUpdate();</p><p> stmt.close();</p><p> stmt=conn.prepareStatement("delete from Bo
92、oks_log where Student_ID=?");</p><p> stmt.executeUpdate();</p><p> conn.commit();</p><p><b> }</b></p><p> catch(SQLException e){}</p>&l
93、t;p><b> finally</b></p><p><b> {</b></p><p> closeStatement(conn,stmt);</p><p><b> }</b></p><p><b> }</b></p&
94、gt;<p> public static void main(String arg[])throws SQLException</p><p><b> { </b></p><p> new DeleteStudentJFrame(); </p><p><b> }</b>&
95、lt;/p><p><b> }</b></p><p> 4.2.2 修改學生:</p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> import javax.swing.*;</p>
96、<p> import java.sql.*;</p><p> public class ModifyStudentJFrame extends JFrame implements ActionListener</p><p><b> {</b></p><p> private String jdbcDriver;//
97、數(shù)據(jù)庫驅(qū)動</p><p> private String jdbcURL;//的數(shù)據(jù)庫連接</p><p> private String dbUserName;//數(shù)據(jù)庫用戶名</p><p> private String dbPassword;//數(shù)據(jù)庫密碼</p><p> private JButton button;&l
98、t;/p><p> private JPanel jpanel;</p><p> private JList jlist; //列表框,顯示圖書目錄</p><p> private String[] student;</p><p> public ModifyStudentJFrame(String jdbcDriver,S
99、tring jdbcURL,String dbUserName,String dbPassword)throws SQLException//數(shù)據(jù)庫表重置</p><p><b> {</b></p><p> super("修改學生基本信息"); </p><p> t
100、his.setBounds(300,200,400,280); </p><p> this.setDefaultCloseOperation(HIDE_ON_CLOSE); //HIDE、EXIT</p><p> this.jdbcDriver=jdbcDriver;</p><p> this.jdbcURL=jdbcURL
101、;</p><p> this.dbUserName=dbUserName;</p><p> this.dbPassword=dbPassword;</p><p> JPanel jp=new JPanel(new GridLayout(2,1));</p><p> this.getContentPane().add(jp,&q
102、uot;North");</p><p> JLabel jlabel=new JLabel("修改學生基本信息",JLabel.CENTER);</p><p> JLabel jlabel1=new JLabel("請選擇需要修改的學生:",JLabel.LEFT);</p><p> jp.add(jla
103、bel); </p><p> jp.add(jlabel1);</p><p> JPanel jp2=new JPanel();</p><p> this.button=new JButton("確定");</p><p> this.getContentPane().add(jp2,"So
104、uth");</p><p> jp2.add(button);</p><p> this.button.addActionListener(this);</p><p> jpanel=new JPanel();</p><p> this.getContentPane().add(jpanel,"Center
105、");</p><p> initLibrary(); </p><p> this.setVisible(true);</p><p><b> }</b></p><p> public ModifyStudentJFrame() throws SQLException
106、 </p><p><b> {</b></p><p> this("sun.jdbc.odbc.JdbcOdbcDriver","jdbc:odbc:library","library","library"); </p><p><b>
107、 }</b></p><p> private Connection getConnection() throws SQLException</p><p> //獲取數(shù)據(jù)庫的連接</p><p><b> {</b></p><p><b> try</b></p>
108、;<p><b> {</b></p><p> Class.forName(jdbcDriver);</p><p><b> }</b></p><p> catch(ClassNotFoundException e)</p><p><b> {</b&
109、gt;</p><p> throw new SQLException(e.getMessage());</p><p><b> }</b></p><p> return DriverManager.getConnection(jdbcURL,dbUserName,dbPassword);</p><p>&l
110、t;b> }</b></p><p> private void closeStatement(Connection conn,Statement stmt)//關閉數(shù)據(jù)庫PreparedStatement、Connection</p><p><b> {</b></p><p><b> try</
111、b></p><p><b> {</b></p><p> if(stmt!=null)stmt.close();</p><p><b> }</b></p><p> catch(Exception e){}</p><p><b> try&
112、lt;/b></p><p><b> {</b></p><p> if(!conn.isClosed())conn.close();</p><p><b> }</b></p><p> catch(Exception e){}</p><p><b
113、> }</b></p><p> public void initLibrary() throws SQLException//數(shù)據(jù)庫表重置</p><p><b> {</b></p><p> Connection conn=null ;</p><p> Statement stmt=n
114、ull; //創(chuàng)建語句對象</p><p> ResultSet rset=null; //執(zhí)行數(shù)據(jù)查詢SELECT語句</p><p> ResultSetMetaData rsmd= null; </p><p><b> try</b></p><p><
115、;b> {</b></p><p> conn=getConnection() ;</p><p> stmt=conn.createStatement(1004,1007); //創(chuàng)建語句對象</p><p> String sql="SELECT Student_ID,Student_Name FROM S
116、tudent";</p><p> rset=stmt.executeQuery(sql); //執(zhí)行數(shù)據(jù)查詢SELECT語句</p><p> rsmd= rset.getMetaData(); //返回元數(shù)據(jù)對象 </p><p> int columns=rsmd.getColumnCount();
117、 //獲得列數(shù)</p><p> int rows=0; </p><p> while(rset.next()) //迭代遍歷結(jié)果集,獲得結(jié)果集總行數(shù)</p><p><b> rows++;</b></p><p> this.student=new String[rows];&l
118、t;/p><p> String results[]=new String[rows]; </p><p> //創(chuàng)建二維數(shù)組保存數(shù)據(jù)結(jié)果集</p><p> rset.beforeFirst(); //移動指針到第一行之前</p><p> for(int i=0;rset.next();i++) //從前向后訪問
119、,獲得每行數(shù)據(jù) </p><p><b> {</b></p><p> results[i]="";this.student[i]=rset.getString(1);</p><p> for(int j=1;j<=columns;j++)</p><p> results[i]+=
120、" "+rset.getString(j); //獲得當前行指定列的值 </p><p><b> }</b></p><p> this.jlist=new JList(results); //所有文件名字符串顯示在列表框中</p><p> jpanel.add(this.j
121、list);</p><p> closeStatement(conn,stmt);</p><p><b> }</b></p><p> catch(Exception e){}</p><p><b> }</b></p><p> public void a
122、ctionPerformed(ActionEvent e) //單擊事件處理方法</p><p><b> { </b></p><p> int i=this.jlist.getSelectedIndex();</p><p> //返回列表框第1個選中數(shù)據(jù)項的序號,從0開始;沒有選中時返回-1</p>
123、<p> if(i!=-1) </p><p><b> try</b></p><p><b> {</b></p><p> if(JOptionPane.showConfirmDialog(this, "確實要修改學號為:\""+this.student[i]+ &q
124、uot;\"的學生嗎?")==0)</p><p> new modifyStudent((String)this.student[i]); </p><p> this.setVisible(false);</p><p><b> } </b></p><p> catch(SQLExce
125、ption e1){}</p><p><b> }</b></p><p> public static void main(String arg[])throws SQLException</p><p><b> { </b></p><p> new ModifyStu
126、dentJFrame(); </p><p><b> }</b></p><p><b> }</b></p><p> 4.2.3 按書名查詢圖書</p><p> import java.awt.*;</p><p> import java.awt.e
127、vent.ActionEvent;</p><p> import java.awt.event.ActionListener;</p><p> import java.sql.SQLException;</p><p> import javax.swing.*;</p><p> public class QueryBookby
128、NameJFrame extends JFrame implements ActionListener</p><p><b> {</b></p><p> private JTextField text;</p><p> private JButton button;</p><p> public Qu
129、eryBookbyNameJFrame()</p><p><b> {</b></p><p> super("按書名查閱圖書"); //窗口標題</p><p> this.setBounds(300,300,280,160); //設置窗口位置和尺寸</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java圖書館管理系統(tǒng)課程設計
- java課程設計——圖書館管理系統(tǒng)
- java課程設計報告---圖書館管理系統(tǒng)
- java課程設計報告---圖書館管理系統(tǒng)
- java課程設計---圖書館信息管理系統(tǒng)
- java數(shù)據(jù)庫課程設計 圖書館管理系統(tǒng)
- java數(shù)據(jù)庫課程設計---圖書館管理系統(tǒng)
- 圖書館管理系統(tǒng)課程設計
- java語言課程設計---圖書館管理系統(tǒng)的設計與實現(xiàn)
- 圖書館管理系統(tǒng)課程設計
- 課程設計--圖書館管理系統(tǒng)
- java 圖書館管理系統(tǒng)(附全代碼)課程設計報告
- c語言圖書館管理系統(tǒng)課程設計---高校圖書館管理系統(tǒng)
- java-圖書館管理系統(tǒng)(附全代碼)-課程設計報告
- 圖書館管理系統(tǒng)課程設計報告
- 圖書館管理信息------系統(tǒng)課程設計
- jsp課程設計《圖書館管理系統(tǒng)》
- sqlserver課程設計——圖書館管理系統(tǒng)
- 圖書館管理系統(tǒng)課程設計報告
- 軟件課程設計--圖書館管理系統(tǒng)
評論
0/150
提交評論