本小節說明如何使用隨附於 Application Server 8.2 的 Java DB 資料庫實作。
Sun Java System Application Server 8.2 介紹啟動與停止 Java DB Network Server 的兩個 asadmin 新指令。
start-database 指令可用來啟動 Java DB Network Server︰
start-database [--dbhost 0.0.0.0] [--dbport 1527] [--dbhome path/derby] |
主機預設值為 0.0.0.0,該值可讓 Java DB 偵聽 localhost 以及 IP/主機名稱介面。dbhome 特性的值為 Java DB 資料庫的位置。預設路徑為 <appserver_install_dir>/derby。
asadmin stop-database 指令用來關閉正在執行的 Java DB Network Server 實例︰
stop-database [--dbhost 0.0.0.0] [--dbport 1527] |
隨附於 Application Server 8.2 的 Java DB 配置還包括幾個有用的程序檔,可協助您使用 Java DB。您可使用 <appserver_install_dir> /derby/frameworks/NetworkServer/bin 目錄中的以下程序檔︰
startNetworkServer.ksh/bat — 可啟動網路伺服器的程序檔
stopNetworkServer.ksh/bat — 可停止網路伺服器的程序檔
ij.ksh/bat — 互動式 JDBC 程序檔工具
dblook.ksh/bat — 可檢視資料庫全部或部分 DDL 的程序檔
sysinfo.ksh/bat — 可顯示有關 Java DB 環境版本資訊的程序檔
NetworkServerControl.ksh/bat — 可讓您在 NetworkServerControl API 上執行指令的程序檔
如需有關這些公用程式的更多資訊,請參閱 Derby 工具和管理指南。
此範例將說明如何擷取 Pointbase 中表格的 DDL,並使用 Netbeans 5.0 在 Java DB 中建立相同的表格。執行此操作的另一個方法是使用指令程式工具和 unload database 指令︰
./startcommander.sh Do you wish to create a new Database. (Yes (Y) or No (N))? [default: N]: Enter product to connect with: (Embedded (E) or Server (S))? [default: E]: e Enter driver to use? [default: [com.pointbase.jdbc.jdbcUniversalDriver]: Enter database URL? [default: [jdbc:pointbase:embedded:sample]: Enter Username? [default: PBPUBLIC]: Enter Password? [default: PBPUBLIC]: PointBase Commander 5.2 ECF build 294 size restricted version EMBEDDED Interactive SQL command language. SunOS/5.9 (C) Copyright 2004 DataMirror Mobile Solutions, Inc. All rights reserved. Licensed to: Sun_customer_demo_use For commercial version contact PointBase at: pointbase.com PHONE: 1-877-238-8798 (US & CANADA) 1-408-961-1100 (International) WEBSITE: www.pointbase.com SQL>unload database sampledb.sql; SQL> unload database sampledb.sql; SQL> 13 Row(s) Unloaded. (PBPUBLIC.CUSTOMER_TBL) SQL> 4 Row(s) Unloaded. (PBPUBLIC.DISCOUNT_CODE_TBL) SQL> 30 Row(s) Unloaded. (PBPUBLIC.MANUFACTURE_TBL) SQL> 11 Row(s) Unloaded. (PBPUBLIC.MICRO_MARKETS_TBL) SQL> 9 Row(s) Unloaded. (PBPUBLIC.OFFICE_TBL) SQL> 4 Row(s) Unloaded. (PBPUBLIC.OFFICE_TYPE_CODE_TBL) SQL> 15 Row(s) Unloaded. (PBPUBLIC.ORDER_TBL) SQL> 6 Row(s) Unloaded. (PBPUBLIC.PRODUCT_CODE_TBL) SQL> 30 Row(s) Unloaded. (PBPUBLIC.PRODUCT_TBL) SQL> 10 Row(s) Unloaded. (PBPUBLIC.SALES_REP_DATA_TBL) SQL> 10 Row(s) Unloaded. (PBPUBLIC.SALES_REP_TBL) SQL> 52 Row(s) Unloaded. (PBPUBLIC.SALES_TAX_CODE_TBL) SQL> 12 Table(s) Unloaded. SQL> quit;
上面範例中,執行 unload database 指令的結果將寫入 sampledb.sql 檔案。sampledb.sql 檔案包含建立必需表格和索引的所有必要 DDL。它還包含將資料插回資料庫的 DML。指令程式指令 RUN 旨在使用產生的程序檔將資料匯入其他 Pointbase 資料庫。以下範例將說明所產生的檔案中的 INSERT 陳述式和相關資料的格式︰
INSERT INTO "ADVENTURE"."CATEGORY" ( "CATID", "LOCALE", "NAME", "DESCRIPTION", "IMAGEURI" ) VALUES( ?, ?, ?, ?, ? ); { 'ISLAND ','en_US','Island Adventures','Experience an island / paradise in a way fit for your needs.','Island_Adventures.gif' 'JUNGLE ','en_US','Jungle Adventures','Experience a jungle / paradise in a way fit for your needs.','Jungle_Adventures.gif' 'MOUNTAIN ','en_US','Mountain Adventures','Experience an / elevated paradise with a view.','Mountain_Adventures.gif' 'ORBITAL ','en_US','Orbital Adventures','Experience a vacuum / paradise with a beautiful view and where no one can hear you scream.', / 'Space_Adventures.gif' 'WESTERN ','en_US','Western Adventures','Enjoy the Wild West. / ','Western_Adventures.gif' 'SOUTH_POLE ','en_US','South Pole Adventures','Experience a / frozen paradise in a way fit for your needs.','SouthPole_Adventures.gif' };
您可以輕鬆編輯指令程式 unload database 指令產生的檔案,以使該檔案僅包含 DDL (例如,可輕鬆撰寫用來處理 insert 陳述式的程式)。我們做個簡單的測試,針對 Pointbase sample 資料庫使用 unload database 指令,然後編輯產生的程序檔,執行以下變更︰
從全部 CREATE Table 陳述式的結尾移除片語 Organization Heap
移除 COMMIT 指令
將布林 datatype 變更為 smallint
移除全部 INSERT 陳述式和相關聯的資料
接下來,使用 Ant 程序檔藉由 sql 目標執行 DDL。最後對 sun-appserv-samples 資料庫重複相同的實驗,並對產生的 SQL 檔案進行更多變更︰
對 sample 資料庫執行的上述所有變更
移除 create user 指令
移除 SET PATH 指令
將 Decimal 精度從 38 變更為 max 31
將 float 精度從 64 變更為 max 52
目前不支援 CREATE PROCEDURE 的 SPECIFIC 關鍵字
移除 GRANT 指令
若要將 Pointbase Java 程序轉換為使用 Java DB,則除需變更 Java 程式碼外,還需變更 CREATE PROCEDURE 陳述式。有關建立 Java DB Java 程序的資訊,可參閱 Derby Reference manual。Java DB 的下一個發行版本將支援 Boolean 資料類型。