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色在线| 狠狠色狠狠综合久久| 国产超碰一区二区三区| 国产精品视频久| 黄色国产在线| 久久人妻系列无码一区| 无码乱人伦一区二区亚洲一| 日本在线视频免费| 国产综合亚洲欧洲区精品无码| 国产欧美专区在线观看| 免费大黄网站在线观看| 黑色丝袜高跟国产在线91| 97超爽成人免费视频在线播放| 日韩AV无码一区| 一级毛片高清| 91小视频在线| 免费99精品国产自在现线| 欧美性猛交一区二区三区| 亚洲精品国产首次亮相| 狠狠色噜噜狠狠狠狠色综合久 | 精品一区国产精品| 亚洲二区视频| 亚洲欧美综合在线观看| 亚洲性视频网站| 国产成人亚洲综合a∨婷婷| 亚洲av片在线免费观看| 91麻豆国产视频| 国产精品久久久久久久久kt| 亚洲国产成人自拍| 久久久久人妻一区精品色奶水| 国产精品亚欧美一区二区三区| a毛片在线免费观看| 国产第四页| 国产亚洲日韩av在线| 欧美.成人.综合在线| 久视频免费精品6| 色悠久久久| 黄色网页在线播放| 伊人中文网| 男女男免费视频网站国产| 亚洲人成网站色7777| 666精品国产精品亚洲| 99福利视频导航| 高潮毛片免费观看| 中文字幕在线日本| 成人字幕网视频在线观看| 亚洲精品视频免费| 成人无码一区二区三区视频在线观看 | 国产精品免费入口视频| 久久香蕉国产线| 国产成人精品亚洲77美色| 国产一区二区三区精品欧美日韩| 国产真实乱子伦视频播放| 亚洲永久色| 四虎成人免费毛片| 亚洲国产精品一区二区第一页免 | 黄色a一级视频| 99九九成人免费视频精品| 美女无遮挡被啪啪到高潮免费| 免费不卡在线观看av| 国产黄色视频综合| 久久久黄色片| 亚洲黄色成人| 亚洲成人黄色在线| 美女啪啪无遮挡| 26uuu国产精品视频| 亚洲成人播放| 亚洲免费播放| 国产精品va| 国产杨幂丝袜av在线播放| 国产一级一级毛片永久| 91免费国产在线观看尤物| 国产网站在线看| 日韩高清在线观看不卡一区二区| 成人日韩精品| 国产精品无码翘臀在线看纯欲| 国产精品亚洲精品爽爽| 日韩精品毛片| 91色在线观看| 日韩精品成人在线| 一级毛片网| 三上悠亚一区二区|