圖書管查詢系統(tǒng)_第1頁
圖書管查詢系統(tǒng)_第2頁
圖書管查詢系統(tǒng)_第3頁
圖書管查詢系統(tǒng)_第4頁
圖書管查詢系統(tǒng)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1設(shè)計(jì)內(nèi)容及要求1.1 數(shù)據(jù)庫通用查詢系統(tǒng)的基本要求當(dāng)僅僅查詢數(shù)據(jù)庫表中的記錄時(shí),我們可以不必知道表中字段的屬性,因?yàn)闊o論字段是何種屬性,總可以使用getString(int columnIndex)或getString(String columnName)方法返回字段值的字符串表示。另外,無論字段是何種屬性,SQL語句的LIKE子語句允許字段值以字符串形式與其他字符串進(jìn)行匹配比較。基于以上所述,要求設(shè)計(jì)一個(gè)B/S模式的數(shù)據(jù)庫通用查詢系統(tǒng),具體要求如下:(1)客戶端Java Applet程序從加載該Java Applet程序的html文件中獲取數(shù)據(jù)庫中的表的名字、表的字段名字以及表中字段的個(gè)數(shù)

2、。這樣一來,當(dāng)需要更換所查詢的表時(shí),只需修改html文件,而不必修改Java Applet程序,使用Java Applet在查詢數(shù)據(jù)時(shí)具有了通用性。(2)Java Applet通用套接字連接和服務(wù)器的Java應(yīng)用程序?qū)崿F(xiàn)通信。Java Applet程序?qū)⒈淼拿帧⒈碇凶侄蔚膫€(gè)數(shù)以及查詢條件提交給服務(wù)器,服務(wù)器端的Java應(yīng)用程序進(jìn)行查詢操作,并將查詢結(jié)果返回給Java Applet程序。1.2 需實(shí)現(xiàn)的主要功能(1) B/S架構(gòu);(2) 用數(shù)據(jù)庫存儲數(shù)據(jù);(3) 客戶端用小應(yīng)用程序?qū)崿F(xiàn);(4) 有登陸界面;(5) 數(shù)據(jù)可實(shí)行添加和刪除功能。2需求分析JDBC操作不同的數(shù)據(jù)庫僅僅是連接方式上的不

3、同,我們使用Microsoft SQL Server 2005數(shù)據(jù)庫管理系統(tǒng)創(chuàng)建一個(gè)名字為的數(shù)據(jù)庫。1、建立數(shù)據(jù)庫選擇Windows 2000/XP系統(tǒng)桌面上的“開始”>“所有程序”> Microsoft SQL Server 2005>SQL Server Management Studio命令,啟動(dòng)數(shù)據(jù)庫管理系統(tǒng),連接到服務(wù)器。然后選擇新建數(shù)據(jù)庫book.mdf,定位文件夾到F:java課程設(shè)計(jì)chaper12。2、創(chuàng)建表創(chuàng)建好數(shù)據(jù)庫后,就可以在該數(shù)據(jù)庫下建立若干個(gè)表。在book.mdb數(shù)據(jù)庫中導(dǎo)入數(shù)據(jù)源為Microsoft Acess名為bookform.mdb的表。3

4、、設(shè)置數(shù)據(jù)源選擇“控制面板”>“管理工具”>“ODBC數(shù)據(jù)源”(某些Windows 2000/XP系統(tǒng),需選擇“控制面板”>“性能和維護(hù)”>“管理工具”>“ODBC數(shù)據(jù)源”)命令,雙擊ODBC數(shù)據(jù)源圖標(biāo),創(chuàng)建SQL Server的新數(shù)據(jù)源,名稱為book,然后一直下一步,測試數(shù)據(jù)源成功即可。服務(wù)器端和客戶端的數(shù)據(jù)時(shí)用套接字來傳輸?shù)?。IP地址表示Internet上的計(jì)算機(jī),端口號標(biāo)識正在計(jì)算機(jī)運(yùn)行的進(jìn)程。端口號與IP地址的組合得出一個(gè)網(wǎng)絡(luò)套接字。客戶端使用Socket類建立到服務(wù)器的套接字連接,具體實(shí)現(xiàn):try Socket sock=new Socket(Stri

5、ng host,int port);catch(IOException e)當(dāng)套接字連接sock建立后,sock使用getInputStream()方法獲得一個(gè)輸入流,然后把獲得的輸入流接到另一個(gè)數(shù)據(jù)流上,然后就可以從這個(gè)數(shù)據(jù)流讀取服務(wù)器來的信息,同樣sock使用getOutputStream()方法獲得一個(gè)輸出流,然后把獲得的輸出流接到另一個(gè)DataOutputStram()數(shù)據(jù)流上,然后向這個(gè)數(shù)據(jù)流寫入信息,發(fā)送給服務(wù)器??蛻糌?fù)責(zé)建立客戶端到服務(wù)器的套接字連接,即客戶端負(fù)責(zé)呼叫,因此服務(wù)器必須建立一個(gè)等待接收客戶的套接字的ServerSocket對象,具體實(shí)現(xiàn):try ServerSock

6、et server_socket=new ServerSocket(int port);catch(IOException e)當(dāng)服務(wù)器的ServerSocket對象建立后,就可以使用accept()方法接收客戶的套接字。DatabaseServer類是數(shù)據(jù)庫通用查詢系統(tǒng)服務(wù)器端的主類,負(fù)責(zé)響應(yīng)客戶的連接請求、建立和客戶的套接字連接,并負(fù)責(zé)在服務(wù)器端查詢數(shù)據(jù)庫。標(biāo)明DatabaseServer類的主要成員變量、方法的UML圖如圖3-1所示。圖3-1 DatabaseServer類的UML圖以下是UML圖中有關(guān)數(shù)據(jù)和方法的詳細(xì)說明。1、成員變量(1)server是ServerSocket對象,負(fù)

7、責(zé)等待接受客戶的套接字請求,當(dāng)有客戶請求套接字連接時(shí),server將接受用戶的請求,并調(diào)用accept()方法返回服務(wù)器端所建立的Socket對象you,即建立服務(wù)器端套接字和客戶端套接字的連接。(2)you是Socket對象,該對象是駐留在服務(wù)器端的套接字對象,有server調(diào)用accept()方法所返回。(3)yourAddress是InetAddress對象,負(fù)責(zé)存放客戶端的IP。2、方法(1)DatabaseServer()是構(gòu)造方法。(2)DatabaseServer對象調(diào)用startServer(int port)方法響應(yīng)客戶的請求。(3)main方法是程序運(yùn)行的入口方法。綜上所述

8、,DatabaseServer類運(yùn)行效果如圖3-2所示。圖3-2 DatabaseServer類運(yùn)行效果圖Java Applet屬于客戶端程序,盡管DatabaseClient類駐留在服務(wù)器端,但它需要下載到客戶端的瀏覽器中來運(yùn)行,即瀏覽器通過運(yùn)行一個(gè)HTML文件來加載執(zhí)行DatabaseClient是java.applet包中Applet的一個(gè)子類,并實(shí)現(xiàn)了Runnable接口。DatabaseClient類的主要成員變量和方法的UML圖如圖3-3所示。圖3-3 DatabaseClient類的UML圖3總體設(shè)計(jì)3.1 總體功能圖圖3-4 總體功能圖3.2 總體流程圖圖3-5 總體流程圖4數(shù)

9、據(jù)庫設(shè)計(jì)4.1 數(shù)據(jù)庫及表結(jié)構(gòu)的建立JDBC操作不同的數(shù)據(jù)庫僅僅是連接方式上的不同,我們使用Microsoft SQL Server 2005數(shù)據(jù)庫管理系統(tǒng)創(chuàng)建一個(gè)名字為book.mdf的數(shù)據(jù)庫。1、建立數(shù)據(jù)庫選擇Windows 2000/XP系統(tǒng)桌面上的“開始”>“所有程序”> Microsoft SQL Server 2005>SQL Server Management Studio命令,啟動(dòng)數(shù)據(jù)庫管理系統(tǒng),連接到服務(wù)器。然后選擇新建數(shù)據(jù)庫book.mdf,定位文件夾到F:java課程設(shè)計(jì)chaper12。圖3-6 數(shù)據(jù)庫連接到服務(wù)器效果圖圖3-7 數(shù)據(jù)庫系統(tǒng)操作界面圖3

10、-8 新建數(shù)據(jù)庫效果圖2、創(chuàng)建表創(chuàng)建好數(shù)據(jù)庫后,就可以在該數(shù)據(jù)庫下建立若干個(gè)表。在book.mdb數(shù)據(jù)庫中導(dǎo)入數(shù)據(jù)源為Microsoft Acess名為bookform.mdb的表。圖3-9 表的數(shù)據(jù)設(shè)計(jì)圖3-10 表的數(shù)據(jù)3、設(shè)置數(shù)據(jù)源選擇“控制面板”>“管理工具”>“ODBC數(shù)據(jù)源”(某些Windows 2000/XP系統(tǒng),需選擇“控制面板”>“性能和維護(hù)”>“管理工具”>“ODBC數(shù)據(jù)源”)命令,雙擊ODBC數(shù)據(jù)源圖標(biāo),創(chuàng)建SQL Server的新數(shù)據(jù)源,名稱為book,然后一直下一步,測試數(shù)據(jù)源成功即可。4.2 JDBC-ODBC的建立建立一個(gè)JDBC-O

11、DBC橋接器:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");這里,Class是包java.lang中的一個(gè)類,該類通過調(diào)用靜態(tài)方法forName加載包中的JdbcOdbcDriver類來建立JDBC-ODBC橋接器。建立橋接器時(shí)可能會(huì)發(fā)生異常,因此,要捕獲這個(gè)異常。建立橋接器的標(biāo)準(zhǔn)如下:try Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");catch(ClassNotFoundException e)4.3 JAVA 數(shù)據(jù)庫的連接首先Connection類聲明一個(gè)

12、對象,然后再使用類DriverManager調(diào)用它的靜態(tài)方法getConnection創(chuàng)建這個(gè)連接對象:Connectioncon=DriverManager.getConnection("jdbc:odbc:數(shù)據(jù)源名字 ","login name","password");假如沒有為數(shù)據(jù)源設(shè)置login name和password,那么連接方式如下:Connectioncon=DriverManager.getConnection("jdbc:odbc:數(shù)據(jù)源名字 ","","&qu

13、ot;);為了能和數(shù)據(jù)源myDataSouce交換數(shù)據(jù),建立Connection對象如下:Connectioncon=DriverManager.getConnection("jdbc:odbc:myDataSouce ","","");建立連接時(shí)應(yīng)捕獲SQLException異常:try con=DriverManager.getConnection("jdbc:odbc:myDataSouce","","");stmt=con.createStatement();catc

14、h(SQLException e) System.out.println(e);5主要功能設(shè)計(jì)流程服務(wù)器端設(shè)計(jì)流程圖圖3-11 服務(wù)端設(shè)計(jì)流程圖客戶端設(shè)計(jì)流程圖圖3-12 客戶端設(shè)計(jì)流程圖6代碼實(shí)現(xiàn)類之間關(guān)系圖圖3-13 客戶端類之間的組合關(guān)系圖3-14 服務(wù)器端類之間的組合關(guān)系6.2 運(yùn)行效果圖圖3-15 登陸界面運(yùn)行效果圖圖3-16 操作界面運(yùn)行效果圖圖3-17 添加書目效果圖圖3-18 刪除書目效果圖6.3 程序打包發(fā)布過程、服務(wù)器端服務(wù)器端程序在命令行窗口運(yùn)行,不需要打包。、客戶端(1)將DatabaseClient.java的源文件保存到和服務(wù)器代碼所在的同一臺計(jì)算機(jī)中的某一目錄中,

15、同時(shí)編譯這個(gè)Java源文件。(2)編寫加載applet的html文件:index.html。當(dāng)瀏覽器使用index.html加載applet時(shí),該applet將從index.html獲取表名、字段名以及字段的數(shù)目。由于大部分?jǐn)?shù)據(jù)庫的字段名經(jīng)常使用若干個(gè)字母作為一個(gè)字段的名字,因此,為了讓用戶查詢方便,index.html文件不僅向applet提供字段名而且提供字段的易讀理解。<applet code=DatabaseClient.class width=450 height=400><Param name="0" value ="bookform

16、"><Param name="1" value ="ISBN:ISBN"> <Param name="2" value ="name:書名"> <Param name="3" value ="author:作者"> <Param name="4" value ="publisher:出版社"> <Param name="5" value =&quo

17、t;date:出版日期"> <Param name="6" value ="price:價(jià)格"><Param name="ziduanAmount" value ="6"> </applet>(3)將index.html文件保存到和DatabaseClient主類所在相同目錄中。(4)如果沒有將index.html所在的目錄設(shè)置為Web共享。可使用瀏覽器以打開文件方式打開index.html;如果沒有安裝瀏覽器也可以使用appletviewer運(yùn)行index.ht

18、ml。A(5)可以用Web發(fā)布管理器,比如,IIS或Tomcat,將含有Java Applet網(wǎng)頁所在的目錄設(shè)成Web服務(wù)目錄。例如,將index.html所在的文件夾設(shè)為Web服務(wù)目錄,虛擬目錄名稱是hello,那么其他用戶就可以在其瀏覽器的地址欄中輸入該服務(wù)器的IP地址、虛擬目錄名稱訪問含有Java Applet的網(wǎng)頁,如。也就是說,Java Applet的字節(jié)碼文件會(huì)下載到客戶端,由客戶端的瀏覽器負(fù)責(zé)運(yùn)行。7總結(jié)與說明到目前為止,我們學(xué)過了 幾種語言了,如果要我們弄出表格直接用代碼的話,那樣就費(fèi)神、費(fèi)力、費(fèi)時(shí)了,所以我們也要學(xué)會(huì)使用數(shù)據(jù)庫系統(tǒng),目前我們接觸的也只有兩種Acess和SQL Server,本圖書館管理系統(tǒng)使用的就是SQL Server 2005。要想要

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論