圖書管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計實驗報告_第1頁
圖書管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計實驗報告_第2頁
圖書管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計實驗報告_第3頁
圖書管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計實驗報告_第4頁
圖書管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計實驗報告_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫課程設(shè)計實驗報告摘要隨著人類社會的不斷進步,科學(xué)技術(shù)有了長足的開展,尤其是在當(dāng)今中國知識經(jīng)濟時代,知識大爆炸帶來了全球圖書企業(yè)的飛速開展,這些書籍為科技的開展做出了巨大的奉獻。人類短短的幾十年創(chuàng)造了大量的書籍資源,但是圖書數(shù)量之多,也使得其管理起來非常的繁瑣,隨著信息時代的到來,圖書的信息化管理使得問題得以解決,圖書館管理系統(tǒng)的出現(xiàn)就顯得水到渠成了。本系統(tǒng)主要上可以分為兩大模塊:圖書館管理員模塊和讀者登錄模塊,并在這兩大模塊下分成多個子模塊。圖書的使用對象是借閱者,例如學(xué)生,教師,管理員;而管理者同時也是圖書館的管理者。因此根據(jù)這些信息,本系統(tǒng)的主要功能就是:實現(xiàn)圖書館圖書信息的管理和維護,如用戶信息管理,管理員信息管理,圖書瀏覽,書架管理信息,圖書館規(guī)那么維護,新書入庫,整理圖書,修改圖書信息和進行查詢等;以及系統(tǒng)的圖書信息查詢,圖書的借出和歸還等功能圖書信息管理系統(tǒng)能夠為用戶提供充足的信息和快捷的查詢手段.例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、本錢低等。目錄:第一章:需求分析1,學(xué)生用戶端2,教師用戶端第二章:總體設(shè)計1,系統(tǒng)分析2,可行性分析3,系統(tǒng)目標(biāo)4,系統(tǒng)功能設(shè)計5,構(gòu)建開發(fā)環(huán)境第三章:數(shù)據(jù)庫設(shè)計1,數(shù)據(jù)庫分析2,工程E-R圖3,數(shù)據(jù)庫表的設(shè)計第四章:程序模塊設(shè)計1,用戶登錄模塊2,數(shù)據(jù)庫操縱框架3,登錄界面實現(xiàn)4,管理端界面的設(shè)計5,查詢圖書界面模塊6,借閱預(yù)約圖書功能模塊7,歸還掛失圖書功能8,圖書超期處理模塊9,學(xué)生用戶管理模塊10,,管理員管理模塊11,超級管理員功能開發(fā)第五章:主要模塊界面第六章:程序源代碼第七章:參考文獻1,需求分析當(dāng)決定要開發(fā)一個信息系統(tǒng)時,首先要對信息系統(tǒng)的需求進行分析,需求分析要做的工作是深入描述軟件的功能和性能,確定軟件設(shè)計的限制和軟件同其他系統(tǒng)元素的接口細(xì)節(jié),定義軟件的其他有效性需求。抽象出當(dāng)前系統(tǒng)的邏輯模型。在理解當(dāng)前系統(tǒng)“怎么做〞的根底上,抽取其“做什么〞的本質(zhì),從而從當(dāng)前系統(tǒng)的物理模型抽象出當(dāng)前系統(tǒng)的邏輯模型。在物理模型中有許多物理因素,隨著分析工作的深入,有些非本質(zhì)的物理因素就成為不必要的負(fù)擔(dān),因而需要對物理模型進行分析,區(qū)分出本質(zhì)的物理因素就成為不必要的負(fù)擔(dān),因而需要對物理模型進行分析,區(qū)分出本質(zhì)的和非本質(zhì)的困素,去掉那些非本質(zhì)的困素即可獲得反映系統(tǒng)本質(zhì)的邏輯模型。管理員登錄過程:當(dāng)管理員在登錄頁面輸入正確的用戶名和密碼后,通過客戶端和效勞器的雙重校驗,并且檢測數(shù)據(jù)庫中的對應(yīng)的用戶名和密碼是否正確,如果是正確的,那么表示管理員登錄成功并進入管理員操作頁面學(xué)生用戶端:查詢圖書,學(xué)生用戶可以進行簡單的查詢和高級查詢,預(yù)約圖書,當(dāng)要借的的書不在館時,可以提前預(yù)約。掛失圖書,圖書喪失要掛失,可以在學(xué)生用戶端實現(xiàn)。管理員端:學(xué)生用戶管理,實現(xiàn)學(xué)生用戶信息的修改,刪減,添加,查詢。圖書管理,包括對圖書的增加,刪減,查詢等。管理員管理:操作者包括超級管理員和普通管理員,超級管理員可以對普通管理員進行刪減,查詢等操作,而普通管理員只有修改自己密碼的權(quán)限。借閱管理:主要是學(xué)生借閱管理,歸還圖書和繳納罰款的管理。2,總體設(shè)計系統(tǒng)不但要滿足客戶提出的要求,同時也要考慮其性能。因此,在工程開發(fā)之前,首先要進行需求分析和可行性研究,這就是進行工程開發(fā)的根底。利用MVC設(shè)計模式,模塊間實現(xiàn)高內(nèi)聚,低耦合。界面設(shè)計美觀大方,操作簡單。功能完善,結(jié)構(gòu)清晰。能夠快速的進行圖書館信息,圖書館參數(shù),書架,管理員等信息等系統(tǒng)的設(shè)置。能夠快速、準(zhǔn)確的進行讀者類型管理的相關(guān)功能,如讀者類型增加、修改、刪除。能夠快速、準(zhǔn)確的進行讀者檔案管理的相關(guān)功能,如讀者檔案的詳細(xì)信息的查看,讀者檔案的增加、修改、查詢。能夠快速、準(zhǔn)確的進行圖書類型管理的相關(guān)功能,如圖書類型的增加、修改、刪除。能夠快速、準(zhǔn)確的進行圖書檔案管理的相關(guān)功能,如圖書檔案的詳細(xì)信息的查看,圖書檔案的增加、修改、刪除。能夠快速、準(zhǔn)確的進行圖書借閱的相關(guān)功能,如圖書借閱,圖書借閱查詢,圖書歸還,圖書續(xù)借等。能夠快速準(zhǔn)確的進行系統(tǒng)的相關(guān)功能查詢,如圖書借閱查詢、圖書到期查詢、圖書檔案查詢等。能夠快速、準(zhǔn)確的進行管理員的相關(guān)功能,如管理員的增加、修改管理員密碼、刪除管理員。能夠快速、準(zhǔn)確的進行管理員或者讀者的登錄。能夠快速、準(zhǔn)確的讓讀者進行讀者功能模塊的瀏覽。3,可行性研究可行性分析是對工程的可行程度進行分析,以便管理層對資金以及技術(shù)的投入進行決策,包括技術(shù)可行性,經(jīng)濟可行性,營運可行性。對于本工程而言,圖書是人類獲取知識最重要的途徑,隨著讀者的日益增加,對圖書的管理要求也增大很多,從圖書館的需求以及現(xiàn)有的技術(shù)等方面研究該圖書管理系統(tǒng)的可行性。當(dāng)前該圖書館的管理比擬粗放,還有大局部需要手工操作,對信息的維護不僅費用高而且工作量大,而且信息的平安性很難得到保障,學(xué)校支出了適量的資金進行本系統(tǒng)的開發(fā)。使用本系統(tǒng)后大局部工作將實現(xiàn)自動化,圖書館只需花費很少的人力和物力進行系統(tǒng)的維護即可。根據(jù)上述分析,公司為此工程結(jié)構(gòu)清晰,功能合理,而且使用JAVASE技術(shù)能夠進行開發(fā),并實現(xiàn)客戶的需求的全部功能,由于這是一個中小型系統(tǒng),客戶要求的開發(fā)時間完全充裕,利潤與開發(fā)本錢也比擬高,這可在一定程度上提高了公司的效益,因此決定開發(fā)此工程。系統(tǒng)功能結(jié)構(gòu)本系統(tǒng)包括學(xué)生端和管理員端,有借閱圖書,預(yù)約圖書,查詢圖書,掛失圖書,超期交納罰款等功能模塊,結(jié)構(gòu)如下:3,數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫作為系統(tǒng)的根底,首先要保證其設(shè)計的合理性,在使用應(yīng)用系統(tǒng)的時候,擁有設(shè)計合理的數(shù)據(jù)庫往往可以起到事半功倍的效果,在系統(tǒng)的維護,功能拓展時,這一優(yōu)點尤其得到很好的表達。系統(tǒng)包含的實體主要有:圖書、學(xué)生、管理員等,下面將分別介紹各實體及實體間的E-R圖。通過其E-R圖讀者可以更好地理解各實體的屬性關(guān)系。下面就以學(xué)生實體為例,來進行介紹,學(xué)生E-R圖如下圖管理員管理員E-R圖數(shù)據(jù)庫表的設(shè)計主要有學(xué)生信息表和管理員信息表還有圖書信息表為例字段名稱數(shù)據(jù)類型字段大小是否主鍵是否為空說明STUNOIntN/A是否學(xué)號StuNameVarchar50否是姓名StuAgeIntN/A否是年齡StuSexVarchar50否是性別ClassVarchar50否是班級DepartmentVarchar50否是院系TelChar11否是PermittedVarchar50否是借閱許可PasswordVarchar20否是密碼學(xué)生用戶信息表字段名稱數(shù)據(jù)類型字段大小是否主鍵是否為空說明mgNoIntN/A是否管理員IDPermittedVarchar50否否管理員權(quán)限PasswordVarchar50否否管理員密碼管理員信息表字段名稱數(shù)據(jù)類型字段大小是否主鍵是否為空說明BookNo是否圖書IDBookName否是圖書名稱Auther否是圖書作者Publishment否是出版社ButTime否是購進日期Borrowed否是是否借閱Ordered否是是否預(yù)約圖書根本信息表字段名稱數(shù)據(jù)類型字段大小是否主鍵是否為空說明BookNointN/A是否書號STUNOvarchar50否否學(xué)號BorrorTimevarchar50否是借閱時間ReturnTimevarchar50否是歸還時間Borrowedvarchar50否是是否借閱Orderedvarchar50否是是否預(yù)約借閱圖書信息字段名稱數(shù)據(jù)類型字段大小是否主鍵是否為空說明StuNOIntN/a是否學(xué)號BookNOIntN/A否是書號BookNameVarchar50否是書名DelayTimevarchar50否是超期天數(shù)超期圖書信息表字段名稱數(shù)據(jù)類型字段大小是否主鍵是否為空說明BookNOIntN/A是否書號StuNamevarchar50否是學(xué)生姓名Classvarchar50否是班級BookNamevarchar50否是書名StuNOIntN/A否是學(xué)生IDAuthervarchar50否是作者預(yù)約圖書表如上字段名稱數(shù)據(jù)類型字段大小是否主鍵是否為空說明LBNOIntN/A是否掛失書號BookNOIntN/A否是書號BookNameVarchar50否是書名StuNOintN/A否是學(xué)生ID第四章:程序模塊設(shè)計用戶登錄模塊設(shè)計用戶登錄界面的主要功能是驗證登錄者的身份和權(quán)限,只有學(xué)生用戶或管理員才能登錄與之對應(yīng)的管理系統(tǒng)。在登錄界面,通過對各項登錄條件的驗證,就可以確認(rèn)用戶的使用權(quán)限。下面將介紹登陸模塊的具體開發(fā)。登錄界面開發(fā)界面構(gòu)造器的實現(xiàn)管理員登錄模塊需要對管理員登錄是輸入的用戶名和密碼進行檢驗,當(dāng)管理員輸入用戶名和密碼后,系統(tǒng)需要對輸入的參數(shù)與數(shù)據(jù)庫中的所存儲的參數(shù)進行比照,當(dāng)用戶名和密碼相對應(yīng)且都正確時能能夠成功登錄到管理員的操作首頁Login.jsp是管理員的登錄界面,主要功能是將管理員輸入的用戶名和密碼提交到manager.action進行處理而且能夠進行簡單的客戶端校驗。Manager.action是對用戶提交的用戶名和密碼進行效勞器端的校驗。當(dāng)用戶提交了數(shù)據(jù)后,manager.action將調(diào)用managerdao中的check〔〕檢測用戶提交的數(shù)據(jù)是否匹配數(shù)據(jù)庫中的數(shù)據(jù),各代碼如下所示Login.jsp代碼如下:packagewyf.hxl;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.table.*;importjavax.swing.event.*;importjava.sql.*;importjava.util.*;importjava.util.Date;publicclassLoginextendsJFrameimplementsActionListener{privateJPaneljp=newJPanel();//創(chuàng)立JPanel對象privateJLabel[]jlArray={//創(chuàng)立標(biāo)簽組newJLabel("用戶IP"),newJLabel("端口號"),newJLabel("用戶名"),newJLabel("密碼"),newJLabel("")};privateJButton[]jbArray={//創(chuàng)立按鈕數(shù)組newJButton("學(xué)生登錄"),newJButton("清空"),newJButton("管理員登錄")};privateJTextField[]jtxtArray={//創(chuàng)立文本框newJTextField("localhost"),newJTextField("3306"),newJTextField("10001")};privateJPasswordFieldjpassword=newJPasswordField("");//創(chuàng)立密碼框Stringsql;DataBasedb;publicLogin(){jp.setLayout(null);//設(shè)置JPanel的布局管理器for(inti=0;i<4;i++){//對標(biāo)簽與按鈕控件循環(huán)處理jlArray[i].setBounds(30,20+i*50,80,25);//設(shè)置標(biāo)簽與按鈕的大小和位置jp.add(jlArray[i]);//將標(biāo)簽和按鈕添加進JPanel容器中}for(inti=0;i<3;i++){//設(shè)置按鈕的大小位置并為其添加事件監(jiān)聽器jbArray[i].setBounds(10+i*120,230,100,25);jp.add(jbArray[i]);jbArray[i].addActionListener(this);}for(inti=0;i<3;i++){//設(shè)置文本框的大小位置并為其添加事件監(jiān)聽器jtxtArray[i].setBounds(80,20+50*i,180,25);jp.add(jtxtArray[i]);jtxtArray[i].addActionListener(this);}jpassword.setBounds(80,170,180,25);//設(shè)置密碼框的大小位置jp.add(jpassword);//將密碼框添加進JPanel容器jpassword.setEchoChar('*');//設(shè)置密碼框的回顯字符jpassword.addActionListener(this);//為密碼框注冊監(jiān)聽器jlArray[4].setBounds(10,280,300,25);//設(shè)置用于顯示登錄狀態(tài)的標(biāo)簽的大小位置jp.add(jlArray[4]);//將標(biāo)簽添加進JPanel容器this.add(jp);Imageimage=newImageIcon("ico.gif").getImage();//對logo圖片進行初始化this.setIconImage(image);//設(shè)置窗體的大小位置及可見性this.setTitle("登錄");this.setResizable(false);this.setBounds(100,100,400,350);this.setVisible(true);}//實現(xiàn)ActionListener接口中的方法publicvoidactionPerformed(ActionEvente){//事件源為文本框Stringmgno=jtxtArray[2].getText().trim();StringmgIP=jtxtArray[0].getText().trim();Stringport=jtxtArray[1].getText().trim();Stringmessage=mgIP+":"+port;DataBase.message=message;//將本方法椎謀淞孔魑問持蹈鳧ataBase方法的私有變量DataBase.log=this;if(e.getSource()==jtxtArray[0]){jtxtArray[1].requestFocus();//切換輸入焦點到密碼框}if(e.getSource()==jtxtArray[1]){jtxtArray[2].requestFocus();//切換輸入焦點到密碼框}if(e.getSource()==jtxtArray[2]) {jpassword.requestFocus();//切換輸入焦點到密碼框}elseif(e.getSource()==jbArray[1]){//事件源為清空按鈕//清空所有信息jlArray[4].setText("");jtxtArray[2].setText("");jpassword.setText("");//將輸入焦點設(shè)置到文本框jtxtArray[2].requestFocus();}elseif(e.getSource()==jbArray[2]){//事件源為管理員登錄按鈕//判斷用戶名和密碼是否匹配if(!mgno.matches("\\d+")){//如果用戶名格式輸入有誤JOptionPane.showMessageDialog(this,"用戶名格式錯誤?。。?,"信息",JOptionPane.INFORMATION_MESSAGE);return;}if(jtxtArray[0].getText().trim().equals("")){//如果"用戶IP"文本框為空,提示JOptionPane.showMessageDialog(this,"用戶IP不能為空?。?!","信息",JOptionPane.INFORMATION_MESSAGE);return;}if(jtxtArray[1].getText().trim().equals("")){//如果"端口號"文本框為空,提示JOptionPane.showMessageDialog(this,"用戶端口號不能為空?。。?,"信息",JOptionPane.INFORMATION_MESSAGE);return;}sql="selectmgNo,passwordfrommanagerwheremgNo="+Integer.parseInt(mgno);db=newDataBase();db.selectDb(sql);//以上三行是對用戶名和密碼進行查詢,驗證身份try{StringmgNo="";Stringpassword="";while(db.rs.next()){//取出結(jié)果集中數(shù)據(jù)并賦值mgNo=db.rs.getString(1).trim();password=db.rs.getString(2).trim();}if(jtxtArray[2].getText().trim().equals(mgNo)&&String.valueOf(jpassword.getPassword()).equals(password)){//登錄成功jlArray[4].setText("恭喜您,登錄成功?。。?);newRoot(mgNo);this.dispose();}else{//登錄失敗jlArray[4].setText("對不起,登錄失?。。。?);}}catch(Exceptione1){e1.printStackTrace();}db.dbClose();//關(guān)閉數(shù)據(jù)庫鏈接}elseif(e.getSource()==jbArray[0]){//事件源為學(xué)生登錄按鈕if(!jtxtArray[2].getText().trim().matches("\\d+")){//假設(shè)學(xué)號格式錯誤,輸出提示對話框JOptionPane.showMessageDialog(this,"輸入有誤,學(xué)號只能為數(shù)字!!!","消息",JOptionPane.INFORMATION_MESSAGE);return;}if(jtxtArray[0].getText().trim().equals("")){//假設(shè)"用戶IP"文本框輸入為空,提示JOptionPane.showMessageDialog(this,"用戶IP不能為空?。?!","信息",JOptionPane.INFORMATION_MESSAGE);return;}if(jtxtArray[1].getText().trim().equals("")){//假設(shè)"端口號"文本框輸入為空,提示JOptionPane.showMessageDialog(this,"用戶端口號不能為空?。。?,"信息",JOptionPane.INFORMATION_MESSAGE);return;}//查詢學(xué)號文本中所輸學(xué)號是否存在于STUDENT表中sql="selectStuNO,PasswordfromSTUDENTwhereStuNO="+Integer.parseInt(jtxtArray[2].getText().trim());db=newDataBase();db.selectDb(sql);try{if(!(db.rs.next())){//假設(shè)學(xué)號錯誤,輸出提示對話框JOptionPane.showMessageDialog(this,"輸入了錯誤的學(xué)號!!","消息",JOptionPane.INFORMATION_MESSAGE);}else{//得到輸入學(xué)號的學(xué)生的姓名和班級StringstuNO=db.rs.getString(1).trim(),password=db.rs.getString(2).trim();if(jtxtArray[2].getText().trim().equals(stuNO)&&String.valueOf(jpassword.getPassword()).equals(password)){//登錄成功jlArray[4].setText("恭喜您,登錄成功!??!");newStudentSystem();this.dispose();}else{//登錄失敗jlArray[4].setText("對不起,登錄失?。。。?);}}}catch(Exceptionex){ex.printStackTrace();}db.dbClose();//關(guān)閉數(shù)據(jù)庫鏈接}}publicstaticvoidmain(String[]args){newLogin();}}登錄失?。旱卿洺晒Γ簩W(xué)生端登錄成功數(shù)據(jù)庫操作類框架publicclassDataBase{Connectioncon=null;//聲明Connection引用Statementstat;ResultSetrs;intcount;publicstaticStringmessage;//聲明一個靜態(tài)成員變量publicstaticLoginlog;publicDataBase(){try{//加載MySQL的驅(qū)動類,并創(chuàng)立數(shù)據(jù)庫連接Class.forName("org.gjt.mm.mysql.Driver");//con=java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root",null);con=DriverManager.getConnection("jdbc:mysql://"+message+"/test?useUnicode=true&characterEncoding=GBK","root","zhanghai");stat=con.createStatement();//創(chuàng)立Statement對象}catch(Exceptione){//如果從Login類傳的參數(shù)不對,那么提示出錯JOptionPane.showMessageDialog(log,"用戶IP或端口號錯誤?。?!","信息",JOptionPane.INFORMATION_MESSAGE);}}publicvoidselectDb(Stringsql){//聲明select方法try{//sql=newString(sql.getBytes(),"ISO-8859-1");rs=stat.executeQuery(sql);}catch(Exceptionie){ie.printStackTrace();}}publicintupdateDb(Stringsql){//聲明update方法try{sql=newString(sql);//轉(zhuǎn)碼count=stat.executeUpdate(sql);}catch(Exceptionie){ie.printStackTrace();}returncount;}publicvoiddbClose(){//聲明close方法try{con.close();}catch(Exceptione){e.printStackTrace();}}42,}這段代碼主要實現(xiàn)了加載MYSQL的JDBC驅(qū)動。并且創(chuàng)立了數(shù)據(jù)庫連接和STATEMENT對象3,管理端界面的實現(xiàn)模塊管理端界面的實現(xiàn),窗體左邊是一個樹狀列表控件,右邊是一個卡片布局的面板,實現(xiàn)代碼如下:packagewyf.hxl;importjava.awt.*;importjava.awt.event.*;importjavax.swing.event.*;importjavax.swing.*;importjavax.swing.tree.*;importjava.io.*;publicclassRootextendsJFrame{//創(chuàng)立節(jié)點數(shù)組DefaultMutableTreeNode[]dmtn={newDefaultMutableTreeNode(newNodeValue("圖書館管理系統(tǒng)")),newDefaultMutableTreeNode(newNodeValue("學(xué)生用戶管理")),newDefaultMutableTreeNode(newNodeValue("圖書管理")),newDefaultMutableTreeNode(newNodeValue("查詢圖書")),newDefaultMutableTreeNode(newNodeValue("借閱預(yù)約圖書")),newDefaultMutableTreeNode(newNodeValue("歸還掛失圖書")),newDefaultMutableTreeNode(newNodeValue("交納罰款")),newDefaultMutableTreeNode(newNodeValue("管理員管理")),newDefaultMutableTreeNode(newNodeValue("退出"))};DefaultTreeModeldtm=newDefaultTreeModel(dmtn[0]);//創(chuàng)立樹模型,指定根節(jié)點為"學(xué)生管理系統(tǒng)"JTreejt=newJTree(dtm);//創(chuàng)立包含dtm樹模型的JTree對象JScrollPanejsp=newJScrollPane(jt);//為JTree創(chuàng)立滾動窗體privateJSplitPanejsplr=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,true);//創(chuàng)立分割窗體對象privateJPaneljp=newJPanel();//創(chuàng)立JPanel對象Imageimage=newImageIcon("tsgl.jpg").getImage();ImageIconii=newImageIcon(image);privateJLabeljlRoot=newJLabel(ii);privateManagermg;//登陸管理員名StringmgNo;//管理員IDCardLayoutcl=newCardLayout();//獲取卡片布局管理器引用publicRoot(StringmgNo){this.mgNo=mgNo;//獲得管理員IDmg=newManager(mgNo);//創(chuàng)立管理員管理面板this.setManager();//設(shè)置管理員權(quán)限this.initJp();//初始化卡片布局面板this.addTreeListener();//為樹節(jié)點注冊事件監(jiān)聽器for(inti=1;i<9;i++){//向根節(jié)點添加子節(jié)點dtm.insertNodeInto(dmtn[i],dmtn[0],i-1);}jt.setEditable(false);//設(shè)置該樹中節(jié)點是可編輯的this.add(jsplr);//將包含樹的滾動窗口添加進窗體jsplr.setLeftComponent(jt);//將包含樹的滾動窗口添加進左邊的子窗口jp.setBounds(200,50,600,500);//為jp設(shè)置大小位置并添加進右邊的子窗口jsplr.setRightComponent(jp);jsplr.setDividerLocation(200);//設(shè)置分隔條的初始位置jsplr.setDividerSize(4);//設(shè)置分隔條的寬度jlRoot.setFont(newFont("Courier",Font.PLAIN,30));jlRoot.setHorizontalAlignment(JLabel.CENTER);jlRoot.setVerticalAlignment(JLabel.CENTER);//設(shè)置窗體的關(guān)閉動作,標(biāo)題,大小,位置及可見性this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Imageimage=newImageIcon("ico.gif").getImage();this.setIconImage(image);this.setTitle("圖書管理系統(tǒng)");//設(shè)置窗體首次出現(xiàn)的大小和位置--自動居中DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();intcenterX=screenSize.width/2;intcenterY=screenSize.height/2;intw=500;//本窗體寬度inth=400;//本窗體高度this.setBounds(centerX-w/2,centerY-h/2-100,w,h);//設(shè)置窗體出現(xiàn)在屏幕中央this.setExtendedState(JFrame.MAXIMIZED_BOTH);//窗體全屏this.setVisible(true);//設(shè)置窗體可見jt.setShowsRootHandles(true);//設(shè)置顯示根節(jié)點的控制圖標(biāo)}publicvoidsetManager(){Stringsql="selectpermittedfrommanagerwheremgNo='"+mgNo+"'";DataBasedb=newDataBase();//創(chuàng)立數(shù)據(jù)庫類對象db.selectDb(sql);//執(zhí)行查詢try{db.rs.next();//結(jié)果集游標(biāo)下移Stringstr=db.rs.getString(1).trim();//得到管理員權(quán)限if(str.equals("0")){mg.setFlag(false);//設(shè)置管理員權(quán)限}}catch(Exceptione){e.printStackTrace();}}publicvoidinitJp(){jp.setLayout(cl);//設(shè)置布局管理器為卡片布局jp.add(jlRoot,"root");//添加根結(jié)點顯示信息jp.add(newStudent(),"stu");//添加學(xué)生管理模塊界面jp.add(newBookManage(),"bm");//添加圖書管理模塊界面jp.add(newSearchBook(),"sb");//添加查找圖書管理界面jp.add(newBorrowBook(),"bb");//添加借閱預(yù)約圖書模塊界面jp.add(newReturnBook(),"rb");//添加歸還掛失圖書界面jp.add(this.mg,"Manager");//添加管理員管理模塊界面jp.add(newExceedTime(),"et");//添加罰款處理界面}publicvoidaddTreeListener(){jt.addTreeSelectionListener(newTreeSelectionListener(){publicvoidvalueChanged(TreeSelectionEvente){DefaultMutableTreeNodecdmtn=//得到選中的節(jié)點對象(DefaultMutableTreeNode)e.getPath().getLastPathComponent();NodeValuecnv=(NodeValue)cdmtn.getUserObject();//得到自定義節(jié)點對象if(cnv.value.equals("圖書館管理系統(tǒng)")){//顯示根結(jié)點信息cl.show(jp,"root");}if(cnv.value.equals("學(xué)生用戶管理")){//顯示學(xué)生用戶管理界面cl.show(jp,"stu");}elseif(cnv.value.equals("圖書管理")){//顯示圖書管理界面cl.show(jp,"bm");}if(cnv.value.equals("查詢圖書")){//顯示查詢圖書界面cl.show(jp,"sb");}elseif(cnv.value.equals("借閱預(yù)約圖書")){//顯示借閱預(yù)約圖書界面cl.show(jp,"bb");}elseif(cnv.value.equals("歸還掛失圖書")){//顯示歸還掛失圖書界面cl.show(jp,"rb");}elseif(cnv.value.equals("交納罰款")){//顯示繳納罰款界面cl.show(jp,"et");}elseif(cnv.value.equals("管理員管理")){//顯示管理員管理界面cl.show(jp,"Manager");}elseif(cnv.value.equals("退出")){//顯示退出界面inti=JOptionPane.showConfirmDialog(Root.this,"是否退出系統(tǒng)?","消息",JOptionPane.YES_NO_OPTION);if(i==JOptionPane.YES_OPTION){//退出系統(tǒng)System.exit(0);}}}});}publicstaticvoidmain(Stringargs[]){newRoot("wyf");}}classNodeValue{Stringvalue;//自定義節(jié)點對象字符屬性publicNodeValue(Stringvalue){//構(gòu)造器this.value=value;}publicStringgetValue(){//value的Get方法returnthis.value;}@OverridepublicStringtoString(){//重寫toString方法returnvalue;}}3,查詢圖書功能實現(xiàn)模塊當(dāng)學(xué)生用戶在學(xué)生信息系統(tǒng)中,單擊‘查詢圖書’節(jié)點時,就會進入查詢圖書界面,頁面開發(fā)的詳細(xì)代碼如下:packagewyf.hxl;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.table.*;importjavax.swing.event.*;importjava.sql.*;importjava.util.*;importjava.util.Date;publicclassSearchBookextendsJPanelimplementsActionListener{intflag;Stringsql;DataBasedb;//創(chuàng)立分割方向為上下的JSplitePane對象privateJSplitPanejsp=newJSplitPane(JSplitPane.VERTICAL_SPLIT,true);privateJPaneljpt=newJPanel();//創(chuàng)立JPanel對象privateJPaneljpb=newJPanel();//創(chuàng)立表示下拉列表框數(shù)據(jù)模型的字符串?dāng)?shù)組privateString[]str={"書名","出版社","作者","購置時間"};privateJComboBoxjcb=newJComboBox(str);//創(chuàng)立下拉列表框privateJButtonjb=newJButton("提交"); //創(chuàng)立按鈕privateJLabel[]jlArray=newJLabel[]{newJLabel("書名"),newJLabel("作者"),newJLabel("出版社")};privateJTextField[]jtxtArray=newJTextField[]{//創(chuàng)立文本框newJTextField(),newJTextField(),newJTextField(),newJTextField()};privateJRadioButton[]jrbArray={//創(chuàng)立單項選擇按鈕newJRadioButton("簡單查詢",true),newJRadioButton("高級查詢")};privateButtonGroupbg=newButtonGroup();//創(chuàng)立按鈕組Vector<String>head=newVector<String>();{//定義表頭head.add("書號");head.add("書名");head.add("作者");head.add("出版社");head.add("購進時間");head.add("是否借閱");head.add("是否預(yù)約");}Vector<Vector>data=newVector<Vector>();//定義檢索出的書的根本信息DefaultTableModeldtm=newDefaultTableModel(data,head); //創(chuàng)立表格模型JTablejt=newJTable(dtm);//創(chuàng)立Jtable對象JScrollPanejspn=newJScrollPane(jt);//將JTable封裝到滾動窗格publicSearchBook(){this.setLayout(newGridLayout(1,1));//設(shè)置查詢圖書界面為網(wǎng)格布局//設(shè)置整個RetrunBook界面上下局部均為空布局管理器jpt.setLayout(null);jpb.setLayout(null);//設(shè)置單項選擇框的大小、位置,并添加事件監(jiān)聽器jpt.add(jcb);jcb.setBounds(160,20,150,20);jcb.addActionListener(this);//添加JButton設(shè)置其大小位置并添加事件監(jiān)聽器jpt.add(jb);jb.setBounds(560,20,120,20);jb.addActionListener(this);for(inti=0;i<2;i++){//對單項選擇按鈕進行設(shè)置jrbArray[i].setBounds(20,20+i*40,100,20);jpt.add(jrbArray[i]);jrbArray[i].addActionListener(this);bg.add(jrbArray[i]);}for(inti=0;i<3;i++){//設(shè)置標(biāo)簽和文本框的坐標(biāo),并將其添加進JPaneljlArray[i].setBounds(120+i*200,60,80,20);jtxtArray[i].setBounds(200+i*180,60,120,20);jpt.add(jtxtArray[i]);jpt.add(jlArray[i]);}for(inti=0;i<3;i++){//設(shè)置文本框為不可用jtxtArray[i].setEditable(false);}//設(shè)置文本框的坐標(biāo),并添加進jptjtxtArray[3].setBounds(350,20,120,20);jpt.add(jtxtArray[3]);jsp.setTopComponent(jpt);//把jpt設(shè)置到j(luò)sp的上部窗格jsp.setBottomComponent(jspn);jsp.setDividerSize(4);this.add(jsp);jsp.setDividerLocation(100);//設(shè)置jsp中分割條的初始位置//設(shè)置窗體的大小位置及可見性this.setBounds(3,10,600,400);this.setVisible(true);}//為事件加載的監(jiān)聽器加上處理事件publicvoidactionPerformed(ActionEvente){if(jrbArray[0].isSelected()){//"簡單查詢"單項選擇按鈕被選中jtxtArray[3].setEditable(true);for(inti=0;i<jtxtArray.length-1;i++){//設(shè)置文本框為不可編輯jtxtArray[i].setEditable(false);}if(jcb.getSelectedIndex()>=0&&jcb.getSelectedIndex()<4){jtxtArray[3].requestFocus();if(e.getSource()==jb){//如果事件源為"提交"按鈕,那么執(zhí)行檢索Stringstr=jtxtArray[3].getText().trim();if(str.equals("")){JOptionPane.showMessageDialog(this,"請輸入必要的信息!?。?,"消息",JOptionPane.INFORMATION_MESSAGE);return;}if(jcb.getSelectedIndex()==0){//根據(jù)書名進行查詢sql="select*fromBOOKwhereBookName='"+str+"'";jtxtArray[3].setText("");}elseif(jcb.getSelectedIndex()==1){//根據(jù)出版社進行查詢sql="select*fromBOOKwherePublishment='"+str+"'";jtxtArray[3].setText("");}elseif(jcb.getSelectedIndex()==2){//根據(jù)作者進行查詢sql="select*fromBOOKwhereAuthor='"+str+"'";jtxtArray[3].setText("");}else{//根據(jù)購進時間進行查詢sql="select*fromBOOKwhereBuyTime='"+str+"'";jtxtArray[3].setText("");}db=newDataBase();;try{//進行轉(zhuǎn)碼sql=newString(sql);}catch(Exceptionae){ae.printStackTrace();}db.selectDb(sql);//從表中檢索成功后,把查到的書的所有信息顯示在界面下局部的表中Vector<Vector>vtemp=newVector<Vector>();try{intflag=0;while(db.rs.next()){//取到結(jié)果集flag++;Vector<String>v=newVector<String>();for(inti=1;i<=7;i++){//將每列添加到臨時數(shù)組vStringstr1=db.rs.getString(i);str1=newString(str);//轉(zhuǎn)碼v.add(str1);}vtemp.add(v);//將各條記錄添加到臨時數(shù)組vtemp}if(flag==0){//查詢失敗,提示JOptionPane.showMessageDialog(this,"沒有您要查找的內(nèi)容?。?!","消息",JOptionPane.INFORMATION_MESSAGE);return;}}catch(Exceptionea){ea.printStackTrace();}dtm.setDataVector(vtemp,head); //更新tablejt.updateUI();jt.repaint();db.dbClose();}}}if(jrbArray[1].isSelected()){//"高級查詢"單項選擇按鈕被選中jtxtArray[0].requestFocus();//獲得輸入焦點jtxtArray[3].setEditable(false);for(inti=0;i<jtxtArray.length-1;i++){//將高級查詢所涉及的文本框設(shè)為可編輯jtxtArray[i].setEditable(true);}if(e.getSource()==jb){//點擊"提交"按鈕intbz=this.seniorSearch();if(bz!=0){return;}db=newDataBase();db.selectDb(sql);//從表中檢索成功后,把查到的書的所有信息顯示在界面下局部的表中Vector<Vector>vtemp=newVector<Vector>();try{intflag=0;while(db.rs.next()){//取到結(jié)果集flag++;Vector<String>v=newVector<String>();for(inti=1;i<=7;i++){//將每列添加到臨時數(shù)組vStringstr=db.rs.getString(i);str=newString(str.getBytes("ISO-8859-1"),"gb2312");v.add(str);}vtemp.add(v);//將各條記錄添加到臨時數(shù)組vtemp}if(flag==0){//查詢失敗,那么彈出提示對話框JOptionPane.showMessageDialog(this,"沒有您要查找的內(nèi)容?。?!","消息",JOptionPane.INFORMATION_MESSAGE);return;}}catch(Exceptionea){ea.printStackTrace();}dtm.setDataVector(vtemp,head);//更新tablejt.updateUI();jt.repaint();db.dbClose();}}}publicintseniorSearch(){intflag=0;//設(shè)置標(biāo)志位Stringstr0=jtxtArray[0].getText().trim();Stringstr1=jtxtArray[1].getText().trim();Stringstr2=jtxtArray[2].getText().trim();if(str0.equals("")&&str1.equals("")&&str2.equals("")){//文本框輸入為空J(rèn)OptionPane.showMessageDialog(this,"請輸入必要的信息?。?!","消息",JOptionPane.INFORMATION_MESSAGE);flag++;}if(((!str0.equals(""))&&(str1.equals(""))&&(str2.equals("")))||((str0.equals(""))&&(!str1.equals(""))&&(str2.equals("")))||((str0.equals(""))&&(str1.equals(""))&&(!str2.equals("")))){JOptionPane.showMessageDialog(this,"請使用簡單查詢?。。?,"消息",JOptionPane.INFORMATION_MESSAGE);flag++;}if((!str0.equals(""))&&(!str1.equals(""))&&(str2.equals(""))){//書名和作者組合sql="select*fromBOOKwhereBookName='"+str0+"'andAuthor='"+str1+"'";jtxtArray[0].setText("");jtxtArray[1].setText("");}if((!str0.equals(""))&&(str1.equals(""))&&(!str2.equals(""))){//書名和出版社組合sql="select*fromBookwhereBookName='"+str0+"'andPublishment='"+str2+"'";jtxtArray[0].setText("");jtxtArray[2].setText("");}if((str0.equals(""))&&(!str1.equals(""))&&(!str2.equals(""))){//作者與出版社組合sql="select*fromBookwhereAuthor='"+str1+"'andPublishment='"+str2+"'";jtxtArray[1].setText("");jtxtArray[2].setText("");}if((!str0.equals(""))&&(!str1.equals(""))&&(!str2.equals(""))){//三者組合sql="select*fromBookwhereBookName='"+str0+"'andPublishment='"+str2+"'andAuthor='"+str1+"'";jtxtArray[0].setText("");jtxtArray[1].setText("");jtxtArray[2].setText("");}returnflag;}}界面如下:〔2〕高級查詢實現(xiàn):if(jrbArray[1].isSelected()){//"高級查詢"單項選擇按鈕被選中jtxtArray[0].requestFocus();//獲得輸入焦點jtxtArray[3].setEditable(false);for(inti=0;i<jtxtArray.length-1;i++){//將高級查詢所涉及的文本框設(shè)為可編輯jtxtArray[i].setEditable(true);}if(e.getSource()==jb){//點擊"提交"按鈕intbz=this.seniorSearch();if(bz!=0){return;}db=newDataBase();db.selectDb(sql);//從表中檢索成功后,把查到的書的所有信息顯示在界面下局部的表中Vector<Vector>vtemp=newVector<Vector>();try{intflag=0;while(db.rs.next()){//取到結(jié)果集flag++;Vector<String>v=newVector<String>();for(inti=1;i<=7;i++){//將每列添加到臨時數(shù)組vStringstr=db.rs.getString(i);str=newString(str.getBytes("ISO-8859-1"),"gb2312");v.add(str);}vtemp.add(v);//將各條記錄添加到臨時數(shù)組vtemp}if(flag==0){//查詢失敗,那么彈出提示對話框JOptionPane.showMessageDialog(this,"沒有您要查找的內(nèi)容!??!","消息",JOptionPane.INFORMATION_MESSAGE);return;}}catch(Exceptionea){ea.printStackTrace();}dtm.setDataVector(vtemp,head);//更新tablejt.updateUI();jt.repaint();db.dbClose();}4,借閱與預(yù)約圖書功能模塊:代碼如下:publicclassBorrowBookextendsJPanelimplementsActionListener{//創(chuàng)立分割方向為上下的JSplitePane對象privateJSplitPanejsp1=newJSplitPane(JSplitPane.VERTICAL_SPLIT,true);privateJPaneljp2=newJPanel();//創(chuàng)立按鈕數(shù)組intflag;Stringsql;DataBasedb;privateJButtonjb2=newJButton("確定");privateJLabeljl3=newJLabel("您要借閱或預(yù)約的書號");privateJLabeljl4=newJLabel("請輸入您的學(xué)號");//在jsp1添加文本框privateJTextFieldjtxt3=newJTextField();privateJTextFieldjtxt4=newJTextField();//在jp2設(shè)置單項選擇框privateJRadioButton[]jrbArray={newJRadioButton("借閱圖書",true),newJRadioButton("預(yù)約圖書")};privateButtonGroupbg=newButtonGroup();Vector<String>head=newVector<String>(); //創(chuàng)立標(biāo)題{head.add("書號");head.add("書名");head.add("作者");head.add("出版社");head.add("是否借閱");head.add("是否預(yù)約");}Vector<Vector>data=newVector<Vector>();//表格數(shù)據(jù)向量集合DefaultTableModeldtm=newDefaultTableModel(data,head);//創(chuàng)立表格模型JTablejt=newJTable(dtm);//創(chuàng)立Jtable對象JScrollPanejspn=newJScrollPane(jt);//將JTable放進滾動窗體publicBorrowBook(){this.setLayout(newGridLayout(1,1));//把jsp2設(shè)置到j(luò)sp1的上部窗格jsp1.setTopComponent(jp2);//設(shè)置jsp1的下部窗格jsp1.setBottomComponent(jspn);//設(shè)置jsp1,jsp2中分割條的初始位置jsp1.setDividerLocation(100);//設(shè)置分割控件位置jsp1.setDividerSize(4);//設(shè)置分割控件寬度jp2.setLayout(null);jb2.setBounds(380,20,100,20);//設(shè)置按鈕的大小與位置//將按鈕添加進JPaneljp2.add(jb2);jb2.addActionListener(this);//設(shè)置JLabel的坐標(biāo)jl3.setBounds(80,60,130,20);jl4.setBounds(330,60,100,20);//把JLabel添加進JPaneljp2.add(jl3);jp2.add(jl4);jtxt3.setBounds(220,60,100,20);jtxt4.setBounds(430,60,100,20);jp2.add(jtxt3);jp2.add(jtxt4);for(inti=0;i<2;i++){jrbArray[i].setBounds(70+i*150,20,150,20);jp2.add(jrbArray[i]);bg.add(jrbArray[i]);}this.add(jsp1);//設(shè)置窗體的標(biāo)題,大小位置及可見性this.setBounds(10,10,800,600);this.setVisible(true);}//為事件加載的監(jiān)聽器加上處理事件publicvoidactionPerformed(ActionEvente){if(e.getSource()==jb2){if(jtxt4.getText().equals("")){//為輸入為空的情況進行處理JOptionPane.showMessageDialog(this,"輸入不能為空,請重新輸入?。?!","信息",JOptionPane.INFORMATION_MESSAGE);return;}//查詢學(xué)號文本中所輸學(xué)號是否存在于STUDENT表中sql="select*fromSTUDENTwhereStuNO="+Integer.parseInt(jtxt4.getText().trim());db=newDataBase();db.selectDb(sql);Vector<Vector>vtemp=newVector<Vector>();try{if(!(db.rs.next())){//假設(shè)學(xué)號錯誤,輸出提示對話框JOptionPane.showMessageDialog(this,"輸入了錯誤的學(xué)號","消息",JOptionPane.INFORMATION_MESSAGE);}else{//得到輸入學(xué)號的學(xué)生的姓名和班級StringstuName=db.rs.getString(2).trim();Stringclasses=db.rs.getString(5).trim();stuName=newString(stuName.getBytes("ISO-8859-1"),"gb2312");classes=newString(classes.getBytes("ISO-8859-1"),"gb2312");//假設(shè)學(xué)號正確,那么檢查該學(xué)生是否有權(quán)限借書或預(yù)約if(db.rs.getString(8).trim().equals("否")){//假設(shè)無權(quán)限那么輸出提示對話框JOptionPane.showMessageDialog(this,"您無此權(quán)限!!","消息",JOptionPane.INFORMATION_MESSAGE);}else{//假設(shè)有權(quán)限,那么查找所輸入的書號是否存在于Book表中sql="select*fromBookwhereBookNO="+Integer.parseInt(jtxt3.getText().trim());db.selectDb(sql);do{//str6存Book表中記錄中第6項,str7存第7項Stringstr6=null;Stringstr7=null;//定義輸入書號所對應(yīng)書的書名和作者StringbookName=null;Stringauthor=null;if(!(db.rs.next())){//假設(shè)Book表中沒有該書號,那么輸出提示對話框JOptionPane.showMessageDialog(this, "沒有您要查找的內(nèi)容","消息",JOptionPane.INFORMATION_MESSAGE);}Vector<String>v=newVector<String>();for(inti=1;i<=7;i++){//順序到達所搜到的結(jié)果中的各項記錄if(i==5){//str6=db.rs.getString(i+1);str6=newString(str6.getBytes("ISO-8859-1"),"gb2312");v.add(str6);}if(i==6){//str7=db.rs.getString(i+1);str7=newString(str7.getBytes("ISO-8859-1"),"gb2312");v.add(str7);}if(i==2){//bookName=db.rs.getString(i).trim();bookName=newString(bookName.getBytes("ISO-8859-1"),"gb2312");v.add(bookName);}if(i==3){//author=db.rs.getString(i).trim();author=newString(author.getBytes("ISO-8859-1"),"gb2312");v.add(author);}if(i==1){//Stringstr=db.rs.getString(i).trim();str=newString(str.getBytes("ISO-8859-1"),"gb2312");v.add(str);}if(i==4){//Stringstr=db.rs.getString(i).trim();str=newString(str.getBytes("ISO-8859-1"),"gb2312");v.add(str);}}vtemp.add(v);//更新結(jié)果框中的內(nèi)容dtm.setDataVector(vtemp,head);jt.updateUI();jt.repaint();if(jrbArray[0].isSelected()){//選擇了借圖書if(str6.trim().equals("是")){//用戶想借的書已經(jīng)被借走,輸出提示信息框JOptionPane.showMessageDialog(this,"此書已經(jīng)被借","消息",JOptionPane.INFORMATION_MESSAGE);}elseif(str7.trim().equals("是")){//用戶想借的書已被約不能借,提示JOptionPane.showMessageDialog(this,"此書已經(jīng)被預(yù)約,不能再借","消息",JOptionPane.INFORMATION_MESSAGE);}else{//創(chuàng)立日期對象,以獲得當(dāng)前日期來記錄借書時間和應(yīng)還時間-Datenow=newDate();sql="updateBOOKsetBorrowed='是'whereBookNO="+Integer.parseInt(jtxt3.getText().trim());db.updateDb(sql);//成功,那么設(shè)置該書的Borrowed項為"是",輸出借書成功信息框JOptionPane.showMessageDialog(this,"借書成功","消息",JOptionPane.INFORMATION_MESSAGE);sql="insertintoRECORDvalues("+Integer.parseInt(jtxt3.getText().trim())+","+Integer.parseInt(jtxt4.getText().trim())+",'"+(now.getYear()+1900)+"."+(now.getMonth()+1)+"."+now.getDate()+"',"+"'"+(now.getYear()+1900)+"."+(now.getMonth()+2)+"."+now.getDate()+"','否','否')";db.updateDb(sql);//將該書記錄插入Record表中}}if(jrbArray[1].isSelected()){//選擇了預(yù)約圖書if(str7.trim().equals("是")){ //該書已經(jīng)被預(yù)約,輸出提示信息框JOptionPane.showMessageDialog(this,"此書已經(jīng)被預(yù)約","消息",JOptionPane.INFORMATION_MESSAGE);}else{//預(yù)約成功,設(shè)置預(yù)約項Ordered為是,表示該書已經(jīng)被預(yù)約sql="updateBOOKsetOrdered='是'whereBookNO="+Integer.parseInt(jtxt3.getText().trim());db.updateDb(sql);//輸出預(yù)約成功信息框JOptionPane.showMessageDialog(this,"預(yù)約成功","消息",JOptionPane.INFORMATION_MESSAGE);sql="insertintoORDERREPORTvalues("+Integer.parseInt(jtxt3.getText().trim())+",'"+stuName+"','"+classes+"','"+bookName+"',"+Integer.parseInt(jtxt4.getText().trim())+",'"+author+"')";db.updateDb(sql);}}}while(db.rs.next());}}}catch(Exceptionex){ex.printStackTrace();}db.dbClose();//關(guān)閉數(shù)據(jù)庫鏈接}}}5,歸還掛失圖書模塊:代碼:packagewyf.hxl;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.table.*;importjavax.swing.event.*;importjava.sql.*;importjava.util.*;importjava.util.Date;pub

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論