本节介绍了有关使用 Application Server 8.2 捆绑的 Java DB 数据库实现的说明。
Sun Java System Application Server 8.2 引入了两个新的 asadmin 命令,用于启动和停止 Java DB 网络服务器。
start-database 命令可用于启动 Java DB 网络服务器的实例:
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 网络服务器实例:
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 工具 和管理指南。
本示例介绍了如何使用 Netbeans 5.0 在 Pointbase 中捕获表的 DDL 并在 Java DB 中创建相同的表。也可以通过使用 commander 工具和 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。通过 commander 命令 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'
};
可以轻松地编辑通过 commander unload database 命令生成的文件,以使它仅包含 DDL(例如,编写用于处理 insert 语句的程序并不困难)。在简单测试中,我们可以对 Pointbase 样例数据库使用 unload database 命令,然后编辑生成的脚本,可做出如下更改:
删除所有 CREATE Table 语句末尾的短语 Organization Heap
删除 COMMIT 命令
将布尔变量 datatype 更改为 smallint
删除所有 INSERT 语句和相关数据
接下来,使用简单的 Ant 脚本执行使用 sql 目标的 DDL。最后,对 sun-appserv-samples 数据库重复执行相同的操作,并对生成的 SQL 文件做出如下更改:
对样例数据库做出所有上述更改
删除 create user 命令
删除 SET PATH 命令
将 Decimal 精度从 38 更改为最大 31
将 float 精度从 64 更改为最大 52
当前不支持 CREATE PROCEDURE 的 SPECIFIC 关键字
删除 GRANT 命令
要将 Pointbase Java 过程转换为使用 Java DB,需要对 Java 代码和 CREATE PROCEDURE 语句进行某些更改。可在 Derby 参考手册 中查看有关创建 Java DB Java 过程的信息。Java DB 的下一版将支持布尔变量数据类型。