1.92k likes | 2.09k Views
Java 概論與實作 Java System Concepts 網路資料庫設計 Network Database Programming 賈蓉生 胡大源 林金池 編著. 第一篇. Java 資料庫環境.
E N D
Java概論與實作 Java System Concepts 網路資料庫設計 Network Database Programming 賈蓉生 胡大源 林金池 編著
第一篇 Java資料庫環境
在眾多資料庫中,本書選定Java/Access為範例資料庫系統,以實作方式表現網站資料庫之功能。Access應屬最方便且功能完整之資料庫,凡有Office的電腦,開機即可使用,無需再另添購軟體。Java是功能強大的物件導向語言,本身即擁有網路功能,是多數網路電玩採用的設計語言,也是多數大銀行建立網路銀行的設計語言,本書使用Java,網路遠端操作資料庫之各項應用。在眾多資料庫中,本書選定Java/Access為範例資料庫系統,以實作方式表現網站資料庫之功能。Access應屬最方便且功能完整之資料庫,凡有Office的電腦,開機即可使用,無需再另添購軟體。Java是功能強大的物件導向語言,本身即擁有網路功能,是多數網路電玩採用的設計語言,也是多數大銀行建立網路銀行的設計語言,本書使用Java,網路遠端操作資料庫之各項應用。
第一章 Java系統安裝
1-1 簡介 • 本系列叢書使用標準版J2SE,亦即標準版開發套件(J2SE Development Kit),簡稱為jdk。讀者可於網站(http://java.sun.com) 下載、或使用本書隨書光碟提供之Java系統安裝程式,如何安裝、如何設定?請參考本章執行步驟。 • 本章內容包括安裝Java 系統軟體(jdk-6.0)、設定Java環境、編輯第一個Java程式、編譯Java程式、執行類別檔案。
1-2 安裝Java 系統軟體(jdk-6.0) • jdk-6.0為Java程式之系統軟體,讀者可於 “http://java.sun.com” 免費下載、或使用本書光碟C:\BookJavaVol_5\System已備妥之執行檔 “jdk-6u6-windows-i586-p.exe”。
1-3 設定Java環境 • Java之所有系統執行式均備儲於C:\Program Files\Java\jdk1.6.0_06\bin目錄內。當要編譯Java程式、或執行Java程式碼時,必須先將該程式或程式碼移置於此目錄內,才可執行,甚為不便。 • 為了避免必須將程式碼移置至C:\Program Files\Java\ jdk1.6.0_06\bin目錄內之不便,讓任一目錄內之Java程式、或Java程式碼均可在自己目錄內執行,我們應設定Java執行路徑之環境。
1-4 編輯第一個Java程式 • 可儲存Java程式之編輯工具非常多,筆者認為 “記事本” 最為樸實,負擔輕、效率高,因此建議讀者以 “記事本” 為Java程式之編輯器。 • 1 class MyfirstJava{ • 2 public static void main(String[ ] args){ • 3 System.out.println("My first Java program"); • 4 } • 5 }
第二章 第一個Java網站資料庫
2-1 簡介 • 在尚未真正進入基礎網站資料庫精髓之前,為了讓讀者先觸摸Java與Access之網站資料庫關係,本章將作片段基礎介紹:建立資料庫、設定ODBC、網路輸入/讀取資料。
2-2 建立Access資料庫(Establish Database) • 本書使用Java/Access系統,以Access2007為範例資料庫(如要使用其他資料庫,請自行按規定轉換),本節以手動於目錄C:\BookJavaVol_5\Program\ch02建立範例資料庫Book.accdb。
2-3 建立資料表(Establish Table) • 延續前節資料庫Book.accdb, • 於目錄C:\BookJavaVol_5\Program\ch02、開啟資料庫Book.accdb \ 建立資料表。
2-4 設定ODBC • 當資料庫建立完成後(如前節之Book.accdb),我們雖可立即以手動方式輸入/讀取資料。但却無法藉由Win作業系統,以應用程式輸入/讀取資料。 • 為了要藉由Win作業系統之應用程式輸入/讀取資料,必須先設定ODBC(Open Database Connectivity),用以連通Win作業系統與資料庫。
2-5 遠端輸入(Network Writing) • 設計Server/Client程式,於Client端鍵入指令,經由網路對Server端之資料庫作資料輸入。本章用意是請讀者體驗第一個Java網站資料庫之資料輸入,有關設計細節將於爾後各章節另詳細介紹。 • 參考範例01
2-6 遠端讀取(Network Reading) • 設計Server/Client程式,於Client端鍵入指令,經由網路對Server端之資料庫作資料讀取。本章用意是請讀者體驗第一個Java網站資料庫之資料讀取,有關設計細節將於爾後各章另詳細介紹。 • 參考範例02
第二篇 網路串流(Data Stream in Network)
人說Java語言有許多其他語言所不能及的優點,網路資料串流就是其中最大優點之一,不需要如其他語言大張旗鼓地先架設網站平台,然後才可執行網路資料傳遞,Java只需於程式中寫幾列程式碼,即可執行網路資料傳遞。人說Java語言有許多其他語言所不能及的優點,網路資料串流就是其中最大優點之一,不需要如其他語言大張旗鼓地先架設網站平台,然後才可執行網路資料傳遞,Java只需於程式中寫幾列程式碼,即可執行網路資料傳遞。 • 有關Java在網路上之應用,讀者可參考本系列叢書第二冊 “Java網路入門程式, 碁峰EL0049”,本篇將以Server / Client為兩組端點、設計Java網路程式,觀察如何將資料納入網路串流,傳輸於兩端點之間。
第三章 網路結構概念 (Network Structure Concepts)
3-1 簡介 • 網路系統 (Network System) 是多個處理器(Processors) 的組合,各處理器散置於各不同地區,彼此間互不共享記憶體,各有其自己的記憶體(Memory),以地區網路(LAN Local Area Network) 或廣域網路(WAN Wide Area Network) 互通訊息。本章將探討網路系統結構之概念。
3-2 網路意義(Background) • 網路系統(Network System) 是多個電腦處理器(Processors) 的組合,從小型的手持微電腦、個人電腦、到大型的工作站,散置於各不同地區(Sites),由網路互相連通、互相支援。
3-3 節點連接(Topology) • 網路系統是將散置於各處的處理器(Processors) 以網路連接,互通訊息。其中有許多連接方式,各有其優缺點,我們考量的重點有: • (1) 實體安裝代價(Installation Cost):連接線愈多,實體代 • 價愈高。 • (2) 通訊時間代價(Communication Cost):連接線愈多,兩 • 節點連通途徑愈多,有較多最短途徑的選擇,節省通 • 訊時間,致通訊時間代價降低。 • (3) 執行方便考量(Availability):連接線愈多,兩節點連通 • 途徑愈多,有較多選擇途徑。同時如果有一連線損壞, • 也有較多機會以其他途徑取代之。
3-4 網路通訊(Communication) • 當探討網路通訊,我們須考量:(1) 名稱解析(Naming Resolution),各節點之行程(Processes) 如何在廣大的網域中互相定址對方?(2) 路由策略(Routing Strategies),如何在網域中選擇傳遞資料之途徑?(3) 連接策略(Connection Strategies),網路中如何安排多個行程同時傳遞資料?(4) 衝突避免(Contention),當發生網路上爭議的問題時,如何解決?
3-5 網路通訊協定(Communication Protocols) • 網路上電腦節點眾多且資料格式不盡相同,強迫互相傳遞資料,將無法順利執行。我們必須設定一個各節點都可接受的協定(Protocol),讓所有節點都依協定的要求遂行資料傳遞,如此才可順利執行。 • 網路通訊協定(Communication Protocols) 是以多階層(Multiple Layers) 方式設計,網域網路採用國際標準組織(ISO International Standards Organization) 所提出的協定(Protocol)
3-6 網路故障處理(Robustness) • 網路節點眾多,發生故障的機會更是稀鬆平常,如連線故障(Failure of Link)、電腦節點故障(Failure of Site)、資料遺失(Loss of Message) 等。 • 為了維護網路隨時保持良好狀態,網路應有能力執行:偵測故障(Detect Failure)、重組系統(Reconfiguration)、與修補故障(Recovery from Failure)。
3-7 網站資料庫處理(Database in Network) • 1、於Server端建立資料庫,設定ODBC連接Win作業系統; • 2、於Server端設計網站程式:(1)建立網站;(2)建立連接平台,等待Client端來連接;(3)建立輸入/輸出串流,與Client端傳遞資料;(4)經由Win作業系統連通資料庫。 • 3、於Client端設計網路程式:(1)建立連接平台,連接Server端;(2)建立輸入/輸出串流,將操作指令傳遞至Server端,同時接收Server端回傳之訊息。
第四章 網路連接(Server/Client Connection)
4-1 簡介 • 本章將介紹Server / Client端點如何作網路連接。設計Server端網路程式,等待被Client端連接;設計Client端網路程式,連接Server端。 • Server端以設定之執行埠(port) 建置網站平台(ServerSocket),再以網站平台建立連接平台(Socket),當Client端有訊息來連接時,以連接平台(Socket) 之接收功能接受連接,並捉取Client端的網址(IP) 印出之。Client端以Server之網址(IP)、及設定之執行埠(port) 建立網路連接平台(Socket,由Client端連接Server端。
4-2 ServerSocket Class • java.net.ServerSocket繼承自Object,此類別產生的新物件,可依本機之網址(IP)、與設定之執行埠(port) 建立Server端網站平台(ServerSocket),等待Client端來連接。其中執行埠(port) 不得設定已被使用者(參考附錄A),否則將無法成功建立。 • 參考範例03
4-3 InetAddress Class • java.net.InetAddress繼承自Object,此類別可依指定電腦之名稱或IP,建立一個網路位置,使用在封包(Datagram Packet) 或網路平台(Socket) 之類別內。此類別無建構子,故無法以建構子產生新物件,但可以類別方法程序回傳一個物件(如範例04之列06)。
4-4 Socket Class • java.net.Socket繼承自Object,此類別產生的新物件,可依網站之IP和port,與Server網站連接,進而以網路串流執行遠端讀取或寫入。 • 參考範例05
4-5 指令參數與Server/Client連接 • 指令參數是位於執行指令後端之參數。於前節、於程式內固定設置IP與port,一旦完成編譯後,即無法改變,極不方便。如果改以指令參數(Command Parameters)就可機動設定IP與port,我們可將完成之編譯碼,使用於任何Server/Client之連接,這也是正式應用之設計方式。 • 參考範例06
第五章 訊息傳遞(Message Transition)
5-1 簡介 • 當Server端與Client端連接後,彼此以網路串流將資料相互傳遞。本章介紹如何於Client端以指令參數輸入訊息,交由網路輸出串流物件,傳送至Server端印出,再讀取Server端設定之訊息,回傳至Client端印出,完成以網路串流相互傳遞訊息。
5-2 DataInputStream Class • java.io.DataInptStream繼承(extends) 自FilterInputStream→InputStream→Object,且承作(implements) 自DataInput。此類別為串流物件,可用於讀取網路平台之輸入串流。
5-3 DataOutputStream Class • java.io.DataOutptStream繼承(extends) 自FilterOutputStream→ OutputStream→ Object,承作(implements) 自DataOutput。此類別為串流物件,可用於從網路平台輸出串流。
5-4 PrintStream Class • java.io.PrintStream繼承(extends) 自FilterOutputStream→ OutputStream→ Object。此類別為串流物件,可用於從網路平台輸出串流,與DataOutputStream有相同的功能,使用環境則更為普遍。
5-5 訊息傳遞操作(Message Transition) • 以類別DataInputStream、PrintStream設計輸入/輸出網路串流,設計Server/Client範例程式07,將Client端之參數訊息傳遞至Server端,同時將Server端之即定訊息回傳至Client端。 • 參考範例07
為了傳遞中文訊息,我們改以DataOutputStream建立輸出串流物件,以其方法程序writeUTF() 網路輸出中英文字串訊息、以readUTF() 讀取網路中英文字串訊息。 • 參考範例08
第三篇 資料庫建立(Establish Database)
除了由手動建立資料庫框架之外,其餘如資料表建立(Tables)、檢視表建立(Views)、資料輸入(Input)、資料新增(Insert)、資料更新(Update) 資料刪除(Delete)等,均可藉由Java程式在網路上作遠端操作。 • 筆者強烈推薦讀者參考本系列叢書第四冊 “資料庫入門程式, 碁峰EL0051”,先行了解各類型問題的操作指令。本篇將以Server/Client網路連接方式,由Client端鍵入指令,遠端操作Server端之資料庫。
第六章 資料表建立(Establish Tables)
6-1 簡介 • 當手動建立資料庫以後,我們即可利用網路,遠端操作該資料庫。資料庫建立於Server端,指令由Client端鍵入,執行操作。 • 本章將以範例實作,介紹如何遠端操作資料表建立(Tables Establish)、限制設定(Constraints)、欄位變更(Fields Alter)、資料表刪除(Tables Delete)。
6-3資料表建立(Tables Establish) • 於Server端,參考2-2節手動建立資料庫(Database),參考2-4節設定ODBC,使資料庫與Win作業系統(Operating System) 連通;設計Server端應用程式(Application Program),連通Win作業系統與資料庫;設計Client端操作程式,鍵入指令經由網路遠端操作資料庫,建立資料表。 • 參考範例09
6-4 限制設定(Constraints) • 建立資料表時,我們可對各欄位之內容作一些限制(Constraints),常用的限制有:主索引欄位設定、必須資料欄位設定、獨一無二欄位設定。 • SQL語言提供指令 “PRIMARY KEY” 設定主索引欄位;提供指令 “NOT NULL” 設定必須資料欄位;提供指令 “UNIQUE” 設定獨一無二欄位。 • 參考範例10
6-5資料表變更(Alter Table) • 資料表變更常用於資料型態變更(Alter Data Type)、與欄位變更(Alter Field),前者為改變資料之型態或長度;後者為增加欄位或刪除欄位。
6-5-1資料型態變更(Alter Data Type) • SQL語言提供指令 “ALTER TABLE tablename ALTER COLUMN field type(n)” 變更資料之型態(type) 或長度(n)。 • 參考範例11
6-5-2 欄位增刪(Add/Drop Fields) • SQL語言提供指令 “ALTER TABLE tablename ADD COLUMN field type(n)” 增加新欄位;提供指令 “ALTER TABLE tablename DROP COLUMN field” 刪除欄位。 • 參考範例13
6-6 資料表刪除(Drop Table) • 於本章前數節、我們探討到如何以Java建立資料表、變更資料表,本節將延續探討刪除資料表。SQL語言提供指令 “DROP TABLE tablename” 刪除資料表。 • 參考範例15
第七章 資料變更(Data Modification)