簡介
Apache Derby 與 IBM Cloudscape
Apache Derby 是一個 Apache DB 項目,它是一種 Java 類庫形式的輕量級、可嵌入的關系引擎。它的本機接口是帶 Java 關系擴展的 Java Database Connectivity (JDBC)。Derby 非常容易部署和運行,在它上面也很容易進行開發。
在 2004 年 8 月,IBM 將 Cloudscape 10.0 關系數據庫產品的一份拷貝捐獻給了 Apache Software Foundation (ASF),該產品因此有了一個新的名稱:“Derby”。從此以後,IBM Cloudscape 成為開放源碼 Apache Derby 數據庫的商業版本,並且是完全免費提供的。該 IBM 軟件包括未作任何修改的 Apache Derby 代碼,另外還添加了 Apache Derby 軟件中所沒有的一些特性,例如用戶友好的安裝程序,包括有助於剛入門的 Java 開發人員提高水平的 Java Runtime Environment (JRE) 和一些翻譯好的手冊。您也可以購買 IBM Cloudscape 的技術支持。Cloudscape 現有的最新版本是 Version 10.1。
Eclipse
Eclipse 平台在 Java 開發社區已變得非常流行,這是理所當然的。這個平台以插件的形式提供了豐富的功能,並且易於學習和使用。
用於 Apache Derby 數據庫的基於 Eclipse 的工具
本文面向的讀者是希望與 Derby 數據庫交互的 Eclipse 用戶。不過,其他 Derby 用戶也將發現,本文對於了解在 Eclipse 中使用 Derby 或者使用獨立的 Rich Client Platform (RCP) 應用程序 Cloudscape Workbench 的各種方法有一定的幫助。
還有其他一些工具選項,例如 SQuirreLSQL 客戶機,但是它們超出了本文的范圍。
工具
Apache Derby 插件
WTP 插件
IBM Cloudscape Workbench、RCP 或 Eclipse 插件
全部工具:WTP、Cloudscape Workbench 和 Derby 插件
Apache Derby 插件
通過將 Derby 插件添加到 Eclipse 中,開發環境得到了增強,現在在 Eclipse 中可以將 Derby jar 文件添加到一個項目的類路徑中,可以啟動和停止 Derby 網絡服務器,可以運行 ij(SQL 命令行工具),還可以使用 sysinfo 輸出 Derby 系統信息。
大小: 3 MB
易用性: Eclipse 的新用戶需要花些時間來熟悉 IDE。對於 Derby 插件,Derby 用戶可以很快地上手。而 Derby 的新用戶將發現,學習 ij 對於在 Eclipse 中使用該工具會有所幫助。
面向的用戶: 本解決方案對於主要興趣在於獨立的數據庫應用程序的開發的所有 Eclipse 和 Derby 用戶來說非常理想。而 Eclipse 或 Derby 的新用戶也可以從這個解決方案中受益;不過,學習曲線會更陡峭一些。
適合的場景:
能發揮 Eclipse IDE 威力(例如其調試和測試能力)的獨立的數據庫應用程序的開發。
Derby 數據庫存儲過程,由於它們是用 Java 編寫的,因而可以使用已有的 Eclipse 調試框架在 Eclipse 中對其進行調試。
是否包括特定於工具的幫助: 是。
是否捆綁 Derby: 捆綁。
是否可以從該工具內啟動 Network Server: 可以。
打包形式: 一組 Eclipse 插件。Derby 插件要求 Eclipse 3.1。
下載地點: 可以從 Apache Derby, 10.1.1.0 的發布頁面下載 derby_core_plugin_10.1.1.zip 和 derby_ui_plugin_1.1.0.zip 文件。
WTP 插件
Eclipse Web Tools Platform (WTP) 項目允許 Eclipse 用戶開發 J2EE Web 應用程序。這個平台中包括多個編輯器、圖形編輯器、特性(nature)、構建器、一個 Web Service 向導、一些數據庫訪問和查詢工具和其他一些組件。
大小: 45 MB
易用性: Eclipse 的學習過程有些曲折,尤其是當您想研究所有工具的功能時更是如此。不過,WTP 與 Cloudscape Workbench (CWB) 有很多相同的視圖,因為 CWB 構建在 WTP 之上,所以,學習了兩者中的任何一個,就可以理解另外一個。
面向的用戶: 可能使用一種或多種數據庫(包括 Derby)的 Web 應用程序開發人員。WTP 允許同時存在多個到不同數據庫系統的連接。
適合的場景:
使用 Derby 數據庫存儲和查詢數據的 Web 應用程序。由於 WTP 允許啟動、停止 Web 應用程序和將整個 Web 應用程序部署到應用程序服務器,所以它提供了非常容易的 Web 應用程序開發。
使用 WTP 的一組插件中包括的數據工具創建用於 Web 應用程序的數據存儲的 Derby 數據庫,運行和保存 SQL 腳本,裝載和卸載表,以及生成 DDL。
是否包括特定於 Derby 的幫助: 有一些。
是否捆綁 Derby: 否。
是否可以從該工具中啟動 Network Server: 不可以。
打包形式: 一組 Eclipse 插件。
下載地點: WTP 站點就有很多 WTP 插件可供下載,包括所有相關的插件,另外還可以從那裡下載一個單獨的包含 Eclipse 和所有必需插件的 zip 文件。
IBM Cloudscape Workbench、RCP 或 Eclipse 插件
Cloudscape Workbench (CWB) 是作為一個 Eclipse Rich Client Platform (RCP) 應用程序、一個獨立的工具或一組 Eclipse 插件的形式提供的。它是一種小型的工具,易於使用和學習。CWB 構建在 WTP 的一組插件的子集之上,並從這些插件獲得大部分基本的功能。Workbench 中增加的功能包括增強的 Derby 和 DB2 連接、從 Derby 到 DB2 的遷移和特定於工具的幫助。CWB 新連接向導中的數據庫管理器列表中添加了 Derby , Version 10.1 支持。這個附加的 DB2 功能包括對 DB2 JDBC Universal 驅動程序、改進的系統表信息和 DB2 DDL 生成的支持。
大小: 獨立的版本占 25 MB,插件占 3 MB。
易用性: 易於使用,學習曲線短。之前無需 Eclipse 方面的知識,不過如果有這方面的知識將會有所幫助。
面向的用戶: Derby 數據庫臨時用戶 —— 僅提供數據庫功能。
適合的場景: 連接和浏覽 Derby 或 DB2 數據庫,創建模式對象,運行和創建 SQL 腳本,裝載和卸載表,以及從 Derby 到 DB2 的遷移。
是否包括特定於工具的幫助: 是。
是否捆綁 Derby: 不捆綁。
是否可以從該工具中啟動 Network Server: 不可以。
打包形式: 打包成一個獨立的工具,或打包成一組 Eclipse 插件。這些插件要求 Eclipse 3.1 和 0.7 WTP 插件。
下載地點: IBM developerWorks。
一起使用 WTP、Cloudscape Workbench 和 Derby 插件
由於所有這些組件都被打包成 Eclipse 插件,所以它們都可以共存於 Eclipse 3.1 之上。每一組插件都為 Eclipse IDE 帶來一些使用 Derby 數據庫方面的功能。
大小: WTP 占 45 MB,Workbench 插件占 3 MB,Derby 插件占 3 MB,一共是 51 MB。
易用性: 只要用戶熟悉 Eclipse,幾乎任何安裝在這個平台上的附加插件都容易學習和理解。
面向的用戶: 需要 Cloudscape Workbench 插件的 Derby 和 DB2 連接支持以及 Derby 插件的啟動和停止 Derby Network Server 能力的 Web 應用程序開發人員。通過添加 Derby 插件,可以增加 WTP 或 Workbench 插件的菜單項中沒有提供的三大功能:
添加 Derby jar 文件到一個項目的類路徑中。
在 Eclipse 中管理 Network Server。
使用 sysinfo 輸入 Derby 系統信息。
適合的場景: 需要用 Derby 數據庫存儲數據的 Web 應用程序。由於 WTP 允許啟動、停止 Web 應用程序和將整個 Web 應用程序部署到應用程序服務器,所以它提供了非常容易的 Web 應用程序開發。通過 WTP 的數據工具,可以更容易地操縱 Derby 數據庫。而且,如果 Web 應用程序開發人員想要從 Eclipse 中啟動 Derby 網絡服務器,那麼目前來說使用 Derby 插件是惟一的方法。
是否包括工具和特定於 Derby 的幫助: 包括。
是否捆綁 Derby: 捆綁。
是否可以從該工具中啟動 Network Server: 可以。
打包形式: 所有這些組件都是 Eclipse 插件,要求 Eclipse 3.1 或更高版本。
下載地點: 見前面對各個工具的描述,其中包括每個組件的下載信息。
工具比較
對於目前的 Eclipse 用戶而言,前面對各工具的描述有效地說明了通過使用插件所取得的附加功能。圖 1 展示了 Cloudscape Workbench 插件如何構建在 WTP 的一組插件之上。CWB 並沒有使用所有 WTP 插件,而是使用其中一些數據工具插件,並通過提供附加的插件來增加功能。
而且,Derby 插件與 WTP 插件或 Cloudscape Workbench 沒有任何關系,它提供了不同的功能。
圖 1. 工具的功能和之間的關系
工具比較表
表 1 總結了每個組件提供的功能,以及與 Derby 數據庫工具的關系。
表 1. 每個組件的功能和與 Derby 數據庫工具的關系
Eclipse
Derby 插件
WTP 插件
CWB 插件 1
CWB RCP
大小 (MB)
110
3
45
3
25 2
是否連接到 DB
否
是
是
是 3
是
是否有附加的 Derby 和 DB2
支持(WTP 之上)
沒有
沒有
沒有
有
有
能否執行 SQL
不能
能
能
使用 WTP
能
能否管理網絡服務器
不能
能
不能
不能
不能
能否浏覽模式
不能
不能
能
使用 WTP
能
是否包括 Derby jar
不包括
包括
不包括
不包括
不包括
能否得到 Derby 系統信息
不能
能
不能
不能
不能
能否從 Derby 遷移到 DB2 數據庫
不能
不能
不能
能
能
是否包括特定於 Derby 的幫助
不包括
包括
包括 4
包括
包括
Cloudscape Workbench (CWB) 插件要求 WTP 插件。為 CWB 插件列出的功能反映了所有提供的功能。如果某個功能是由 WTP 插件首先提供的,則被標記為 “使用 WTP”。
CWB RCP (獨立的)版本 的大小總共只有 25 MB,因為不需要安裝 Eclipse。
CWB 插件添加了對 Cloudscape 和 Apache Derby 10.1 連接的即插即用支持。WTP 支持 10.0 Derby 數據庫連接,但是也可以連接到 10.1 Derby 數據庫,只是連接向導沒有把 10.1 Derby 數據庫作為一個選項。
WTP 提供了有限的與 Derby 相關的幫助。
使用這些工具連接數據庫和發出 SQL 的例子
本節將展示使用這些工具連接到 Derby 數據庫和在 Derby 數據庫上發出查詢的一些例子。
WTP 插件和 Cloudscape Workbench
圖 2 展示了 Cloudscape Workbench 獨立版本的 New Connection 向導。在使用 WTP 插件時,New Connection 向導也非常相似。不過,數據庫管理器區域也列出了其他數據庫供應商。
圖 2. Cloudscape Workbench 和 WTP 插件的 New Connection 向導
WTP 和 Cloudscape workbench 中提供了 SQL 編輯器。SQL 編輯器中提供了 SQL 模板,如 圖 3 所示,當然也可以輸入和運行臨時構造的查詢。
圖 3. 使用 Cloudscape Workbench 或 WTP 插件發出 SQL 查詢
Derby 插件
下圖顯示了在 Eclipse 的控制台中使用 ij 時用於連接到 Cloudscape 數據庫的 JDBC 連接 URL。連接 URL 可以由用戶在 ij 中直接輸入,也可以使用一個腳本來提供。
圖 4. 在 Eclipse 控制台中使用 Derby 插件和 ij 連接到 Derby 數據庫
圖 5 中用文本編輯器創建了一個 SQL 腳本,並且包括多個 SQL 語句。要使用 Derby 插件運行該腳本,可以選擇上下文菜單項 Apache Derby > Run SQL Script using 'ij'。
圖 5. 使用 Derby 插件和 ij 運行 SQL 腳本
結束語
Cloudscape Workbench 和 WTP 插件
Cloudscape Workbench 的獨立版本是一個小型的工具,它包含 WTP 插件提供的數據庫工具的部分功能。不管是 CWB 的獨立版本,還是 CWB 插件,都提供了附加的 Derby 和 DB2 連接選項,Derby 到 DB2 的遷移功能,以及特定於工具的幫助。
Cloudscape Workbench 的獨立版本是操縱 Derby 數據庫的理想工具。
在 Eclipse 環境中使用 WTP 的一組插件特別適合於需要訪問和操縱數據庫的 Web 應用程序的開發。WTP 提供了現有的大部分數據工具,如果不需要 Derby 到 DB2 的遷移功能的話,它應該足以操縱 Derby 數據庫。
Derby 插件
在 Eclipse 中通過命令行使用 ij,啟動和停止 Network Server,運行 sysinfo 命令,以及將 Derby jar 文件添加到一個項目中,這些都是 Derby 插件為 Eclipse 帶來的功能。Derby 插件可以與 WTP 或 Workbench 插件一起使用,甚至可以三者並用。