本章 3.1 節介紹系統的整體架構與特色簡介。在 3.2 將針對系統 的做法做一個詳細的說明。3.3 節則是此系統的事件流程圖。
4.1 系統發展架構圖與特色簡介
4.1.1 系統架構圖
圖 4.1 系統架構 遠端資料庫
(提供資料供近端 查詢的資料庫) (使用 Access)
URL:jdbc:odbc:querydb 瀏覽器
WEB 伺服器 http
JDBC
資料庫 伺服器
近端資料庫
(提供對遠端資料庫做查詢 時的資訊(MAPTABLE)) (使用 MySQL)
SQL (Tomcat) (JSP/HTML) MAPTABLE
4.1.2 系統特色簡介
此系統的目的是為了讓資料表欄位數(註一)、欄位名稱(註二)、資 料欄位的對應位置不同(註三)與資料庫型態不同(註四)的兩個資料庫可 以讀取彼此的資料,不受上述條件的不同而無法讀取。
※ 下列有兩個資料表用來說明註解
資料表一(Access)的欄位資料如下:
編號 姓名 電話 生日
資料表二(MySQL)的欄位資料如下:
ID NAME ADDRESS TEL E-MAIL
(註一):欄位數不同是指資料表一有四個欄位,資料表二有五個欄位 (註二):欄位名稱不同是指資料表一的欄位名稱有「編號、姓名、電
話、生日」與資料表二不同,資料表二以英文名稱來表示。
(註三):資料欄位的對應位置不同是指資料表一的「電話」是在第三 欄,而資料表二的電話「TEL」是在第四欄
(註四):資料庫型態不同是指資料表一是 Access 的資料庫,資料表 二是 MySQL 的資料庫。
系統的功能及特色如下:
1.特色:
1)即使資料庫型態不同、欄位數不同、對應位置不同、欄 位名稱不同,仍可透過網路讀取對方資料庫。
資料庫型態不同:例如遠端資料庫是 Access,近端資 料庫是 MySQL。
欄位數不同(Access 有六欄、MySQL 有五欄)、對應位 置不同(ADDRESS 與位址的對應位置不同)、欄位名稱不同:
NUM 姓名 電話 住址 E-MAIL
ID NAME ADDRESS TEL BIRTHDAY SEX
Access
MySQL
圖 4.2 解釋資料庫型態不同、欄位數不同、欄位名稱不同、對應位置不同
2)透過網路,即時讀取對方資料庫的資料,且不會更改對 方資料庫裡的資料。
3)因為是線上讀取,因此不同於資料庫轉檔的優點是,資 料不怕讀取到未更新的資料。
例如說:將 Access 的資料匯至 MySQL。
2.功能:
1)在使用者端,輸入帳號、密碼,接著進入查詢畫面,輸 入關鍵資料,即可查詢與近端資料表格式不同的遠端資 料庫裡的資料。
4)在管理者端,進入設定之前,先需輸入資料庫路徑、資 料表名稱等,只要輸入過一次,系統會將紀錄存在 Session 中,以後只要輸入第一個字母變會有下拉式的 選單,可以選取,不必再次鍵入長長的路徑、資料表等 名稱。
2)在管理者端,是用來建立 MAPTABLE。MAPTABLE 可 以看成是用來當作讀取遠端資料表欄位時的指標。
3)當使用者端在讀取查詢遠端資料庫時,會自動去尋找
MAPTABLE,再去讀取遠端資料表將欲取之欄位資料傳回 近端資料表的對應欄位。
4.2 系統核心架構
本節是說明系統的製作及流程。分為管理者端與使用者端。
4.2.1 管理者端
4.2.1.1 讀取資料庫中的資料表
1.資料庫路徑:透過這個路徑,可以經由網路連到遠端資料庫。
使用 URL 連到資料庫:
jdbc:subprotocol://host:port / databasename URL 中的 subprotocol 用來辨識正在使用的特殊資料庫系 統。Java 中的 DriverManager 類別利用 URL 的這個部分,從註 冊中的驅動程式清單中,選擇適當的 JDBC 驅動程式。如果 DriverManager 無法替資料庫找到合適的 JDBC 驅動程式,就會 丟出 SQLException。
在此系統中使用了 MySQL 及 ACCESS,URL 如下:
MySQL: jdbc:mysql://localhost:8080/mydata Access: jdbc:odbc:technical_library
2.輸入資料表:使用 SQL 語法連接到資料庫中的某資料表。