999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Java圖書查詢系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)

2010-04-12 00:00:00田緒安,蘇林茂,王紅梅
現(xiàn)代電子技術(shù) 2010年11期

摘 要:針對多種圖書查詢系統(tǒng)的優(yōu)缺點(diǎn),研究了面向?qū)ο蟮木W(wǎng)絡(luò)編程語言Java的網(wǎng)絡(luò)類庫文件,利用Socket套接字實(shí)現(xiàn)圖書信息查詢系統(tǒng)的設(shè)計(jì)。依據(jù)網(wǎng)絡(luò)編程方法和數(shù)據(jù)庫特性,給出了實(shí)現(xiàn)圖書信息查詢系統(tǒng)的方法,設(shè)計(jì)過程中的關(guān)鍵技術(shù)和開發(fā)中需要注意的問題,以及數(shù)據(jù)庫的驅(qū)動和連接方法。最后給出服務(wù)器端和客戶端核心代碼作為參考。與其他查詢系統(tǒng)比較,該系統(tǒng)更加方便和快捷。

關(guān)鍵詞:Socket; 數(shù)據(jù)庫; Java; 查詢

中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A

文章編號:1004-373X(2010)11-0138-03

Design and Implementation of Books Inquiry System Based on Java

TIAN Xu-an1, SU Lin-mao1, WANG Hong-mei2

(1. Xi’an Communications Institute, Xi’an 710106, China; 2. The Second Communication Corps of the Lanzhou Military Region, Urumqi830002, China)

Abstract: The design of the books information inquiry system is realized by the Socket, according to the advantages and shortcomings existed in the various books inquiry systems, and the network library files of the object-oriegnted network programming language Java is researched.The realization of books information inquiry system, the key technique in the design process and the problems in development, the driven and joint means of database were given, according to the characteristics of the database and network programming means. It is more convenient and prompt. The core code of the server-side and client-side are showed for reference.

Keywords: Socket; database; Java; inquiry

基于Java查詢系統(tǒng)的開發(fā)目的是為了提高查詢效率。選用Java開發(fā)工具可以提高查詢系統(tǒng)的移植性和兼容性。 系統(tǒng)主要功能是實(shí)現(xiàn)讀者對圖書信息進(jìn)行準(zhǔn)確、快速查閱。

1 系統(tǒng)結(jié)構(gòu)

系統(tǒng)采取B/S結(jié)構(gòu),利用服務(wù)器端和客戶端的 Socket通信機(jī)制完成信息的傳遞,如圖1所示。數(shù)據(jù)庫用來統(tǒng)計(jì)圖書信息,主要涉及的是信息表格,選用Access實(shí)現(xiàn)。

2 Socket通信分析

2.1 Socket應(yīng)用

網(wǎng)絡(luò)通過雙向通訊連接實(shí)現(xiàn)數(shù)據(jù)交換。Socket用來實(shí)現(xiàn)客戶端和服務(wù)端的連接,它是TCP/IP協(xié)議的編程界面,由一個IP地址和一個端口號惟一確定。在Java環(huán)境下,Socket編程是基于TCP/IP協(xié)議的網(wǎng)絡(luò)編程。

2.2 Socket通信過程

服務(wù)器端Listen(監(jiān)聽)某個端口是否有連接請求,客戶端向服務(wù)器端發(fā)出Connect(連接)請求,服務(wù)器端向客戶端發(fā)回Accept(接受)消息,一個連接就建立起來了。服務(wù)器端和客戶端都可以通過Send,Write等方法與對方通信。

圖1 系統(tǒng)結(jié)構(gòu)

采用Socket套接字把網(wǎng)絡(luò)連接作為一個流(Stream),通過流讀寫字節(jié)。

2.3 網(wǎng)絡(luò)客戶和網(wǎng)絡(luò)服務(wù)器的設(shè)置

客戶端與服務(wù)器端使用約定一致的協(xié)議或標(biāo)準(zhǔn)來通信。由于在一個機(jī)器上同時運(yùn)行了多個相同的或不同的網(wǎng)絡(luò)服務(wù)器,因此,端口號可作為約定的標(biāo)準(zhǔn)或協(xié)議的一部分,以便客戶機(jī)定位服務(wù)器。

網(wǎng)絡(luò)服務(wù)器綁定在某一端口上,監(jiān)聽新的連接。服務(wù)器允許客戶端建立一個相對持久的連接,在這個鏈接的生命周期中,客戶端不斷請求服務(wù)器的服務(wù),直到客戶端顯示斷開這個連接。

3 查詢系統(tǒng)的設(shè)計(jì)方案

查詢系統(tǒng)分為服務(wù)器端和客戶機(jī)端兩部分。首先執(zhí)行服務(wù)器端程序,然后監(jiān)聽本地IP地址上指定的端口,并發(fā)生阻塞,等待客戶端程序的連接請求;接著,客戶端程序啟動,向指定的服務(wù)器發(fā)送連接請求;當(dāng)服務(wù)器端得到客戶端程序的連接請求后,與客戶端程序建立連接,并向客戶端程序返回其IP地址。

3.1 服務(wù)器端的設(shè)計(jì)步驟

(1) 創(chuàng)建一個等待連接的ServerSocket對象。

(2) 調(diào)用ServerSocket對象的accept()方法偵聽接受客戶端的連接請求。當(dāng)偵聽到一個客戶的請求時,連接成功,并返回一個Socket對象。

(3) 創(chuàng)建與Socket對象綁定的輸入輸出流,并建立相應(yīng)的數(shù)據(jù)輸入輸出流。

(4) 通過數(shù)據(jù)輸入輸出流與客戶端進(jìn)行數(shù)據(jù)讀寫,完成雙向通信。

(5) 當(dāng)客戶端斷開連接時,關(guān)閉各個流對象,結(jié)束通信。

3.2 服務(wù)器端的設(shè)計(jì)步驟

(1) 創(chuàng)建指定服務(wù)器上指定端口號的Socket對象。

(2) 創(chuàng)建與Socket對象綁定的輸入輸出流,并建立相應(yīng)的數(shù)據(jù)輸入輸出流。

(3) 通過數(shù)據(jù)輸入輸出流與服務(wù)器端進(jìn)行數(shù)據(jù)讀寫,完成雙向通信。

(4) 通過調(diào)用close()方法關(guān)閉與服務(wù)器端的連接,并關(guān)閉各個流對象,結(jié)束通信。

4 數(shù)據(jù)庫的驅(qū)動和連接

采用jdbc-odbc橋?qū)崿F(xiàn)庫的驅(qū)動和連接,完成數(shù)據(jù)庫的連接并返回該連接。如圖2所示。

4.1 建立Access數(shù)據(jù)庫

(1) 建立Access數(shù)據(jù)庫db.mdb并創(chuàng)建bookform表。

(2) 打開控制面板→管理工具→數(shù)據(jù)源(ODBC),選擇“系統(tǒng)DSN”,單擊“添加”,選擇“Driver do Microsoft Access (*.mdb)”,點(diǎn)擊“完成”,彈出的對話框里將“數(shù)據(jù)源名”一項(xiàng)給數(shù)據(jù)源取名,點(diǎn)擊“選擇”,找到剛剛建立的數(shù)據(jù)庫文件db.mdb,即ODBC數(shù)據(jù)源配置完成。

圖2 庫的驅(qū)動和連接

4.2 Access數(shù)據(jù)庫的連接

JDBC獨(dú)立于具體的關(guān)系數(shù)據(jù)庫。 JDBC API與數(shù)據(jù)庫交互并處理所得的結(jié)果,通過SQL語句或存儲在數(shù)據(jù)庫中的過程(stored procedures)來存取數(shù)據(jù)。

通過JDBC來存取某一特定的數(shù)據(jù)庫時,JDBC driver是連接JDBC API與具體數(shù)據(jù)庫之間的橋梁。Java程序首先使用JDBC API來與JDBC Driver Manager交互,由JDBC Driver Manager載入指定的JDBC drivers, 之后就可以通過JDBC API存取數(shù)據(jù)庫。使用driver需要每個客戶端機(jī)都裝上數(shù)據(jù)庫對應(yīng)的ODBC driver。

數(shù)據(jù)庫的連接過程如下所述:

首先使用Java Class類中的forName靜態(tài)方法加載驅(qū)動程序:

Class.forName(″sun.jdbc.odbc.JdbcOdbcDriver″);

然后連接數(shù)據(jù)庫,需要用java.sql包中的Connection類聲明一個對象,再用類DriverManager調(diào)用它的靜態(tài)方法getConnection創(chuàng)建這個連接;

最后創(chuàng)建Statement對象,利用Statement對象來傳送并執(zhí)行SQL命令。

5 核心代碼參考

5.1 服務(wù)器端程序

服務(wù)器端程序如下:

public static void main(String args[]) {

ServerSocket server=1;

Server_thread thread;

Socket you=1;

while(true) {

try {

server=new ServerSocket(6666);

}catch(IOException e1) {

System.out.println(″正在監(jiān)聽″); }

try {

you=server.accept(); }

catch(IOException e){}

if(you!=1) {

new Server_thread(you).start();

} else {continue;}

5.2 客戶端程序

客戶端程序如下:

try

{socket=new Socket(this.getCodeBase().getHost(),6666);

in=new DataInputStream(socket.getInputStream());

out=new DataOutputStream(socket.getOutputStream());

}

catch(IOException ee)

{提示條.setText(″連接失敗″);}

if(socket!=1)

{InetAddress address=socket.getInetAddress();

提示條.setText(″連接:″+address+″成功″);}

if(thread==1)

{thread=new Thread(this);

thread.start();

}

}

public void stop()

{try

{

socket.close();

thread=1;

}

catch(IOException e)

{this.showStatus(e.toString());

}

}

InetAddress類表示一個IP地址。得到通信對方的IP地址后,就可以用Socket或數(shù)據(jù)報(bào)方式與該主機(jī)通信。該類只有一個默認(rèn)的不帶參的構(gòu)造方法:

static InetAddress getLocalHost();

該構(gòu)造方法返回一個包含本地主機(jī)的IP地址的InetAddress對象。當(dāng)方法返回一個或多個InetAddress對象的引用時,就可以使用其他非靜態(tài)方法得到數(shù)據(jù)。

6 結(jié) 語

基于Java查詢系統(tǒng)是依據(jù)網(wǎng)絡(luò)編程方法和數(shù)據(jù)庫特性以及采用Socket套接字實(shí)現(xiàn)圖書信息查詢的一種有效方法。該系統(tǒng)與其他查詢系統(tǒng)相比較具有更加方便和快捷的優(yōu)點(diǎn),可提高查詢效率。該系統(tǒng)的不足之處是數(shù)據(jù)庫的連接和驅(qū)動相對麻煩一些。

參考文獻(xiàn)

[1]葉樹華.網(wǎng)絡(luò)編程實(shí)用教程\\.北京:人民郵電出版社,2006.

[2]張汾.圖書館圖書管理系統(tǒng)分析與設(shè)計(jì)\\.山西電子技術(shù),2002(1):22-27.

[3]譚獻(xiàn)海.網(wǎng)絡(luò)編程技術(shù)及應(yīng)用\\.北京:清華大學(xué)出版社,2006.

[4]Deitel M H.Java大學(xué)教程\\.北京:電子工業(yè)出版社,2007.

[5]應(yīng)東生.Java開發(fā)技術(shù)全程指南\\.北京:電子工業(yè)出版社,2008.

[6]杜佳榮.Java網(wǎng)絡(luò)編程技術(shù)與實(shí)踐\\.北京:清華大學(xué)出版社,2008.

主站蜘蛛池模板: 国产成人91精品| 精品一区国产精品| 蜜桃视频一区| 国产拍在线| 人妻夜夜爽天天爽| 成人免费黄色小视频| 日韩精品无码免费专网站| 综合色在线| 97成人在线观看| 日韩午夜伦| 亚洲国产成人久久77| 韩日午夜在线资源一区二区| 91久久夜色精品国产网站| 特级精品毛片免费观看| 亚洲A∨无码精品午夜在线观看| 国产香蕉在线视频| 夜夜操狠狠操| 日韩在线第三页| 中文字幕永久在线看| 欧美在线视频a| 波多野结衣在线一区二区| 国产成人毛片| 国产91特黄特色A级毛片| 狠狠v日韩v欧美v| 大陆精大陆国产国语精品1024| 亚洲色图另类| 高h视频在线| 欧美h在线观看| 91在线精品麻豆欧美在线| 亚洲AV成人一区二区三区AV| 久久久久九九精品影院| 欧美性爱精品一区二区三区| 国产精鲁鲁网在线视频| 成人a免费α片在线视频网站| 国产精品网拍在线| 精品自窥自偷在线看| 欧美成人第一页| 久爱午夜精品免费视频| 日韩精品亚洲一区中文字幕| 国产成人综合日韩精品无码不卡| 国产成人高精品免费视频| 国产91熟女高潮一区二区| 97国内精品久久久久不卡| 九九九久久国产精品| 欧美激情综合| 在线a视频免费观看| 真实国产乱子伦高清| 国产欧美亚洲精品第3页在线| 欧美人人干| 欧美国产精品不卡在线观看| 欧美视频在线不卡| h网址在线观看| 国产乱人伦AV在线A| 精品撒尿视频一区二区三区| 国产成人高清精品免费软件| 91系列在线观看| 国产亚洲高清视频| 国产又色又刺激高潮免费看| 18禁色诱爆乳网站| 国产又色又爽又黄| 国产9191精品免费观看| 农村乱人伦一区二区| 国产成熟女人性满足视频| 成人在线观看不卡| 国产女人在线视频| 久久公开视频| 91在线日韩在线播放| 中文字幕人成乱码熟女免费| a级毛片免费网站| 欧美一区日韩一区中文字幕页| 国产精品对白刺激| 亚洲无码高清一区二区| 操操操综合网| 日本AⅤ精品一区二区三区日| 婷婷综合在线观看丁香| 极品国产在线| 91综合色区亚洲熟妇p| 亚洲欧洲日韩久久狠狠爱| 色成人亚洲| 国产不卡国语在线| 国产高清免费午夜在线视频| 免费国产一级 片内射老|