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

基于Java圖書查詢系統的設計及實現

2010-04-12 00:00:00田緒安,蘇林茂,王紅梅
現代電子技術 2010年11期

摘 要:針對多種圖書查詢系統的優缺點,研究了面向對象的網絡編程語言Java的網絡類庫文件,利用Socket套接字實現圖書信息查詢系統的設計。依據網絡編程方法和數據庫特性,給出了實現圖書信息查詢系統的方法,設計過程中的關鍵技術和開發中需要注意的問題,以及數據庫的驅動和連接方法。最后給出服務器端和客戶端核心代碼作為參考。與其他查詢系統比較,該系統更加方便和快捷。

關鍵詞:Socket; 數據庫; Java; 查詢

中圖分類號:TP311 文獻標識碼: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查詢系統的開發目的是為了提高查詢效率。選用Java開發工具可以提高查詢系統的移植性和兼容性。 系統主要功能是實現讀者對圖書信息進行準確、快速查閱。

1 系統結構

系統采取B/S結構,利用服務器端和客戶端的 Socket通信機制完成信息的傳遞,如圖1所示。數據庫用來統計圖書信息,主要涉及的是信息表格,選用Access實現。

2 Socket通信分析

2.1 Socket應用

網絡通過雙向通訊連接實現數據交換。Socket用來實現客戶端和服務端的連接,它是TCP/IP協議的編程界面,由一個IP地址和一個端口號惟一確定。在Java環境下,Socket編程是基于TCP/IP協議的網絡編程。

2.2 Socket通信過程

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

圖1 系統結構

采用Socket套接字把網絡連接作為一個流(Stream),通過流讀寫字節。

2.3 網絡客戶和網絡服務器的設置

客戶端與服務器端使用約定一致的協議或標準來通信。由于在一個機器上同時運行了多個相同的或不同的網絡服務器,因此,端口號可作為約定的標準或協議的一部分,以便客戶機定位服務器。

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

3 查詢系統的設計方案

查詢系統分為服務器端和客戶機端兩部分。首先執行服務器端程序,然后監聽本地IP地址上指定的端口,并發生阻塞,等待客戶端程序的連接請求;接著,客戶端程序啟動,向指定的服務器發送連接請求;當服務器端得到客戶端程序的連接請求后,與客戶端程序建立連接,并向客戶端程序返回其IP地址。

3.1 服務器端的設計步驟

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

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

(3) 創建與Socket對象綁定的輸入輸出流,并建立相應的數據輸入輸出流。

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

(5) 當客戶端斷開連接時,關閉各個流對象,結束通信。

3.2 服務器端的設計步驟

(1) 創建指定服務器上指定端口號的Socket對象。

(2) 創建與Socket對象綁定的輸入輸出流,并建立相應的數據輸入輸出流。

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

(4) 通過調用close()方法關閉與服務器端的連接,并關閉各個流對象,結束通信。

4 數據庫的驅動和連接

采用jdbc-odbc橋實現庫的驅動和連接,完成數據庫的連接并返回該連接。如圖2所示。

4.1 建立Access數據庫

(1) 建立Access數據庫db.mdb并創建bookform表。

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

圖2 庫的驅動和連接

4.2 Access數據庫的連接

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

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

數據庫的連接過程如下所述:

首先使用Java Class類中的forName靜態方法加載驅動程序:

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

然后連接數據庫,需要用java.sql包中的Connection類聲明一個對象,再用類DriverManager調用它的靜態方法getConnection創建這個連接;

最后創建Statement對象,利用Statement對象來傳送并執行SQL命令。

5 核心代碼參考

5.1 服務器端程序

服務器端程序如下:

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(″正在監聽″); }

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或數據報方式與該主機通信。該類只有一個默認的不帶參的構造方法:

static InetAddress getLocalHost();

該構造方法返回一個包含本地主機的IP地址的InetAddress對象。當方法返回一個或多個InetAddress對象的引用時,就可以使用其他非靜態方法得到數據。

6 結 語

基于Java查詢系統是依據網絡編程方法和數據庫特性以及采用Socket套接字實現圖書信息查詢的一種有效方法。該系統與其他查詢系統相比較具有更加方便和快捷的優點,可提高查詢效率。該系統的不足之處是數據庫的連接和驅動相對麻煩一些。

參考文獻

[1]葉樹華.網絡編程實用教程\\.北京:人民郵電出版社,2006.

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

[3]譚獻海.網絡編程技術及應用\\.北京:清華大學出版社,2006.

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

[5]應東生.Java開發技術全程指南\\.北京:電子工業出版社,2008.

[6]杜佳榮.Java網絡編程技術與實踐\\.北京:清華大學出版社,2008.

主站蜘蛛池模板: 蜜桃视频一区二区| 精品国产成人高清在线| 毛片免费视频| 久久夜色撩人精品国产| 三级欧美在线| 欧洲免费精品视频在线| 亚洲二区视频| 男人天堂伊人网| 中文字幕精品一区二区三区视频| 114级毛片免费观看| 色久综合在线| 亚洲欧美不卡中文字幕| 色丁丁毛片在线观看| 美女免费黄网站| www亚洲天堂| 99er精品视频| 国产区免费| 91精品国产福利| 在线国产资源| аⅴ资源中文在线天堂| 激情国产精品一区| 亚洲区一区| 久久黄色毛片| 国产日韩久久久久无码精品| 色综合久久88| 强奷白丝美女在线观看| 无码AV高清毛片中国一级毛片| 永久天堂网Av| 午夜日韩久久影院| a亚洲天堂| 欧美亚洲国产精品第一页| 免费中文字幕一级毛片| 国产在线视频导航| 国产午夜无码片在线观看网站 | 国产成人综合久久精品尤物| 99久久国产综合精品2020| 欧美另类精品一区二区三区| 日韩黄色大片免费看| 精品国产91爱| 中文字幕无码制服中字| 国产成人一区免费观看| 一本视频精品中文字幕| 国产一二视频| 亚洲中文精品久久久久久不卡| 亚洲乱伦视频| 国产95在线 | 国产美女在线免费观看| 极品私人尤物在线精品首页| 一级成人a做片免费| 视频国产精品丝袜第一页| 国产经典在线观看一区| 欧美日韩另类在线| 国内精品九九久久久精品| 91亚洲视频下载| 欧美人与动牲交a欧美精品| 国产黑丝视频在线观看| 国产精品女人呻吟在线观看| 一区二区午夜| 成AV人片一区二区三区久久| 手机永久AV在线播放| av免费在线观看美女叉开腿| 久久6免费视频| 亚洲性视频网站| av在线5g无码天天| 国产精品妖精视频| 亚洲色图欧美在线| 精品人妻无码中字系列| 免费高清毛片| 亚洲第一区精品日韩在线播放| 玖玖免费视频在线观看| 国产精品极品美女自在线网站| 试看120秒男女啪啪免费| 国产精品国产主播在线观看| 成人一区专区在线观看| 亚洲精品福利视频| 幺女国产一级毛片| 成年人国产网站| 国产丝袜一区二区三区视频免下载| 国产色婷婷| 亚洲国产日韩在线成人蜜芽| 九色综合视频网| 欧美激情福利|