亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

用JDBC開發基于客戶/服務器模式的Internet

2023-06-10 12:43:25
字體:
來源:轉載
供稿:網友

1、概述

隨著Internet/Intranet的普及以及WEB技術的發展,人們對信息的需求越來越強烈,數據庫與Internet/Intranet應用軟件的集成已經成為了非常迫切的問題?;ヂ摼W上數據庫產品的復雜,有限的帶寬,以及互聯網上軟件產品的跨平臺性,將是我們遇到的最大困難。本文通過作者的工作實踐,介紹了JDBC規范及應用JAVA的SOCKET機制,以及JAVA的客戶/服務器計算模式,最后根據以上的原理,實現了一個簡單的基于客戶/服務器的JAVA查詢遠端服務器上的數據庫的小例子。

2、問題提出

當我從事Internet/Intranet軟件開發時,為了達到很好的兼容性,安全性以及跨平臺性,不得不采用JAVA編程,但是JAVA數據庫方面的不足,確實眾所周知。雖然JDBC技術在一段時間以前就已經發布了,但是對于大多數數據庫產品而言,卻要為其編制特殊的驅動。雖然有一些數據庫廠商用JAVA編寫了自己產品的驅動(如IBM的DB2數據庫軟件),但是這類產品的價ge和復雜的使用方法卻是使一些中小企業和Internet愛好者們望而卻步,另外,在有限的帶寬下如何減少數據的流量等一系列問題,將是解決這類問題的最大的絆腳石。因此,我們必須解決這類問題,并且產生一個跨平臺性的,能掛接多種數據庫的,基于客戶/服務器的軟件解決方案。

3、分析問題

以上的問題我們可以用JAVA的Socket機制實現客戶/服務器,然后在服務器端用JDBC來完成客戶端所提交的查詢要求,因此,將問題分為如下兩個方面。

(1)JAVA中的Socket機制

在各種網絡的客戶/服務器應用中,客戶與服務器之間的通訊機制是多種多樣的,但大多數都采用的是基于TCP/IP的Socket機制來完成的,Socket是兩個程序間用來進行雙向傳輸的網絡通訊端點,在服務器程序方面通過IP在網絡中標識自己,然后,通過一個客戶端程序知道的端口號來提供服務,而客戶端在網絡中通過服務器的IP來找到服務器,通過連接他的端口號來獲得服務器的某項服務。當然,計算機也擁有一些內置的用來提供其他服務的端口和空閑的端口,這樣這些空閑端口就可供程序員來使用。由于Socket通訊機制是一種較為底層的通訊機制,所以通過Socket的數據表示是一種原始的字節流信息。那么客戶端 服務器的程序就應該按照程序員制定的一種約定來進行數據的格式化處理后才能進行具體的應用,這種約定實際上就是一種協議。

Socket通訊機制提供了兩種通訊方式,一種是有連接的,另一種是無連接的。有連接的方式是指程序在開始時,雙方就建立了連接,形成了一條通訊鏈路,這條通訊鏈路一直存在,直到任意一方終止連接為止。在連接的同時,雙方就通過這個通訊鏈路進行I/O操作,這種方式是可靠的而且是全雙工的。無連接的方式是指提供不可靠的連接,數據傳送時是以數據報的方式發送,類似與我們的寄信。本文采用的為有連接方式。

JAVA在現實中有兩個類用于Socket連接,一個是ServerSocket類,應用于服務器方;一個是Socket,應用于客戶方。在服務器端用如下語句對端口進行初始化及監聽:

try{ 
                ServerSocket server=new ServerSocket(9001);//監聽9001端口,此端口不能與系統的 
                //端口號沖突
               Socket socket=server.accept();//阻塞進程,一旦有客戶連接初始化socket類 
               DataInputStream in=new DataInputStream(socket.getInputStream()); //建立輸入流 
               PrintStream out=new PrintStream(socket.getOutputStream()); //建立輸出流 
               }
             catch(IOException e){}

在客戶端用如下語句即可與服務器連接:

try{ 
                 socket=new Socket(hostname,9001);//連接以hostname的服務器,端口號為9001 
                 //這里的hostname為服務器的IP地址 
                  in=new DataInputStream(socket.getInputStream());//初始化輸入流 
                  out=new PrintStream(socket.getOutputStream());//定義輸出流 
                  }catch(IOException e){}

通過以上語句后,在客戶與服務器之間就建立了in和out這兩個輸入和輸出流,那么就可以進行通信了。最后,為了在服務器端能響應多個客戶端的請求,在服務器的輸入和輸出流的處理中應用了多線程,是每一個線程對應一個客戶端的服務,由于JAVA的內存管理是一種????管理,當某一個客戶的連接斷開后,服務器程序分配給這一個客戶的線程的資源就會被自動收回。其多線程的語句如下:

 new ServerThread(clientname,clientcount,socket).start();

//初始化一個新的ServerThread類(注:ServerThread類為程序的一個線程類

在以上的語句中clientcount為傳給ServerThread類的線程號。

經過以上的語句后,客戶端與服務器端之間就建立了聯系,而且實現了多線程。

(2)JDBC淺析。

隨著JAVA的興起,JAVA的子公司JAVASOFT為了實現JAVA存取數據庫而提供了一套數據庫連接規范JDBC(JAVA DATABASE CONNECTIVITY)有一些數據庫廠商根據這個數據庫規范開發了自己的數據庫JAVA的API,但這些在價ge和使用的復雜度方面往往讓人難以接受。另外,由于這些API增加了很多功能,是基于瀏覽器的JAVA APPLET加載的速度變慢而且影響了速度。而本程序是為一定需要而設計的故代碼很小,執行速度相對加快。

JAVA為了實現數據庫的連接而推出了JDBC規范,JDBC設計是基于X/OPEN SQL CLI(CALL LEVEL INTERFACE)這一模型,定義了一組API對象和方法,程序員可以使用這些API與數據庫程序進行交互。JDBC API是一個應用于數據庫的接口,用來解釋和執行來自應用程序中的SQL語句,并返回結果集。它可以全部用JAVA寫作為APPLET的一部份下載,又可以是一種本地模塊與現有的數據庫連接。如SUN和INTERSOLV合作開發的JDBC-ODBCBRIDGE就是一種通過JDBC來訪問機器上的已定義的ODBC數據源,JDBC-ODBCBRIDEG可以通過在JDBC和ODBC之間建立一個橋梁,讓JAVA程序通過JDBC來訪問ODBC中的數據源。

在JDK1.1.5以上的版本中已經包含了JDBC-ODBCBRIDGE,讀者如沒有也可從SUN的網站上下載。在我們的程序中即是采用了這一種方式來實現對各種ODBC數據源的訪問的。下面我們簡要的介紹一些本套程序要用到的一些基本的類,讀者如想獲得更多的幫助可以察看SUN JDBC的幫助文檔。

DriverManager類用于處理驅動程序的裝入。使用該類來定義一些程序中使用的所要連接的驅動,在本程序中就是JDBC-ODBCGRIDGE;

Connection類定義了一個到特定數據庫的連接。當程序定義了驅動以后,就要與數據庫建立連接,該類將完成這些工作;

Statement類提供了一個執行SQL語句的容器。用來提交一個SQL查詢;

ResultSet類用于控制結果類的存取。其作用是獲得查詢結果的一些信息,如結果的紀錄數,字段數,字段名,結果集等與結果相關的信息。

(注意!由于本程序意在介紹編程方法和思想,所以JDBC的一些具體類的使用方法不屬于本文的范疇。有關其中具體的使用方法將會在后面程序中寫出。)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产日韩在线看片| 亚洲91精品在线| 7m精品福利视频导航| 欧美日韩国产91| 2018中文字幕一区二区三区| 欧美性色视频在线| 亚洲一区二区日本| 精品无人国产偷自产在线| 成人乱人伦精品视频在线观看| 国产精品丝袜久久久久久高清| 91精品国产91久久久久久吃药| 国产日韩在线看片| 欧美精品第一页在线播放| 亚洲欧美日韩综合| 欧美一级大片在线观看| 欧美日韩在线一区| 高跟丝袜欧美一区| 91在线|亚洲| 国产精品丝袜久久久久久不卡| 欧美野外猛男的大粗鳮| 日韩亚洲第一页| 国产午夜精品免费一区二区三区| 欧美疯狂做受xxxx高潮| 亚洲成av人片在线观看香蕉| 热久久免费视频精品| 日本亚洲精品在线观看| 亚洲国产私拍精品国模在线观看| 国产婷婷成人久久av免费高清| 中文字幕亚洲色图| 91久久久久久久| 国产精品麻豆va在线播放| 国产成人综合久久| 91在线视频成人| 欧美国产高跟鞋裸体秀xxxhd| 色婷婷亚洲mv天堂mv在影片| 日韩国产在线播放| 美女性感视频久久久| 国产精品久久久久久av下载红粉| 992tv在线成人免费观看| 欧美精品亚州精品| 日韩有码片在线观看| 亚洲一区亚洲二区亚洲三区| 亚洲国产精品福利| 亚洲丝袜一区在线| 久久久久亚洲精品成人网小说| 欧美在线观看视频| 热re91久久精品国99热蜜臀| 欧美性生交大片免网| 日本欧美精品在线| 成人xxxxx| 精品视频在线观看日韩| 久久久国产一区二区三区| 精品国模在线视频| 亚洲精品日韩丝袜精品| 亚洲综合小说区| 性欧美xxxx视频在线观看| 久久久噜噜噜久久中文字免| 日韩av在线导航| 亚洲第一色在线| 亚洲欧美视频在线| 色在人av网站天堂精品| 日韩av综合网站| 国内精久久久久久久久久人| 国产精品一区二区三区成人| 成人av.网址在线网站| 欧美理论在线观看| 国产精品video| 中文字幕亚洲情99在线| 不卡在线观看电视剧完整版| 日日噜噜噜夜夜爽亚洲精品| 久久国产精品久久国产精品| 亚洲国模精品私拍| 亚洲欧洲视频在线| 这里只有精品在线播放| 欧美丰满少妇xxxxx做受| 97在线观看视频国产| 91天堂在线观看| 亚洲精品日韩在线| 中文字幕在线观看亚洲| 亚洲精品在线不卡| 中文字幕欧美精品日韩中文字幕| 91av视频在线免费观看| 亚洲人午夜色婷婷| 精品无人国产偷自产在线| 欧美性猛交xxxx偷拍洗澡| 亚洲国产欧美日韩精品| 欧美激情在线播放| 91亚洲精品久久久久久久久久久久| 久久综合伊人77777蜜臀| 一区二区三区视频在线| 国产精品影片在线观看| 97在线视频精品| 日韩欧美国产高清91| 欧美在线一级va免费观看| 亚洲第一精品夜夜躁人人躁| 成人性生交xxxxx网站| 欧美另类xxx| 国产中文日韩欧美| 亚洲а∨天堂久久精品喷水| 亚洲无av在线中文字幕| 中文字幕精品一区久久久久| 国产在线a不卡| 成人黄在线观看| 久久天天躁狠狠躁夜夜躁2014| 中文字幕亚洲激情| 欧美黑人极品猛少妇色xxxxx| 国产91网红主播在线观看| 国产精品免费一区豆花| 精品亚洲国产成av人片传媒| 国产精品爱久久久久久久| 欧美极品少妇xxxxⅹ裸体艺术| 国产成人精品综合久久久| 91精品综合久久久久久五月天| 久久综合久久88| 欧美成人午夜激情视频| 日本一区二三区好的精华液| www亚洲欧美| 久久国产精品久久精品| 日韩欧美成人免费视频| 久久伊人精品视频| 国产日本欧美在线观看| 精品国偷自产在线视频99| 国产精品成人v| 亚洲视频在线视频| 中文字幕免费国产精品| 性欧美视频videos6一9| 精品视频一区在线视频| 26uuu另类亚洲欧美日本老年| 中文字幕最新精品| 国产中文日韩欧美| 亚洲欧美精品一区二区| 国语自产精品视频在线看一大j8| 成人午夜黄色影院| 国产精品一区二区久久久久| 欧美激情视频一区二区三区不卡| 国产精品日韩电影| 91网站在线免费观看| 欧美亚洲成人免费| 国产精品wwww| 欧美一区在线直播| 宅男66日本亚洲欧美视频| 欧美午夜无遮挡| 91久久久亚洲精品| 中文字幕精品久久久久| 538国产精品视频一区二区| 欧美夫妻性生活xx| 伊人男人综合视频网| 69视频在线免费观看| 亚洲国产精品悠悠久久琪琪| 色香阁99久久精品久久久| 亚洲伊人成综合成人网| 国产精品白嫩初高中害羞小美女| 高清欧美性猛交xxxx| 久久久人成影片一区二区三区观看| 日韩av在线免费播放| 欧美日韩国产影院| 国产激情久久久| 欧美日韩免费一区| 日韩av第一页| 激情久久av一区av二区av三区| 91精品视频一区| 国产成人免费av| 欧美日韩在线一区| 亚洲美女喷白浆|