使用 Java DB (Derby) 数据库
本文档演示了如何在 NetBeans IDE 中设置 Sun Java DB 数据库连接。在建立连接之后,即可开始在 IDE 中使用该数据库,您可以执行的操作包括创建表、用数据填充表、运行 SQL 语句和查询等。
Java DB 数据库是 Sun 支持的 Apache Derby 版本。Java DB 是完全事务型、安全且基于标准的数据库服务器,它全部采用 Java 编写,并且完全支持 SQL、JDBC API 和 Java EE 技术。Java DB 数据库与 GlassFish V2 应用服务器打包在一起,并且该数据库目前也包含在 JDK 6 中。有关 Java DB 数据库的详细信息,请查阅正式文档。
预计时间:30 分钟
目录

要学习本教程,您需要具备以下软件和资源。
注意:Java DB 包含在 JDK 6 中。在安装 NetBeans IDE 的 Web 和 Java EE 版本(或安装完整版本)时,可以选择安装 GlassFish V2 应用服务器,该应用服务器也包含 Java DB。或者,如果使用 Sun Java System Application Server,请注意,其中已包含 Java DB 数据库。
配置数据库
在 NetBeans IDE 安装中注册了 GlassFish 服务器之后,即已注册 Java DB。可以向下跳至启动服务器并创建数据库。如果单独下载了 GlassFish(或 Sun Java System Application Server),并需要获取有关在 NetBeans IDE 中对其进行注册的帮助,请参见 IDE“帮助内容”(F1) 中的“注册 Sun Java System Application Server/GlassFish 实例”。如果仅下载了 Java DB,请执行以下操作:
- 运行自解压文件。将在与该文件相同的位置创建一个名为 "javadb" 的文件夹。如果仅下载了 Java DB,并且希望将该数据库服务器放在与其解压缩位置不同的位置中,现在应重新对其定位。
- 在 Java DB 根目录 (javadb) 中,创建一个名为 "databases" 的新文件夹。稍后,将使用此文件夹存放该数据库服务器的各个实例。请注意,此文件夹并非必须位于数据库根目录中。
在继续执行下一步操作之前,应了解 Java DB 根目录的各个组成部分,这一点很重要:
- demo 子目录包含演示程序。
- bin 子目录包含用于执行实用程序和设置环境的脚本。
- javadoc 子目录包含通过源代码注释生成的 API 文档。
- docs 子目录包含 Java DB 文档。
- lib 子目录包含 Java DB jar 文件。
- frameworks 子目录包含用于执行实用程序和设置环境的旧式脚本。通常,提供这些脚本是为了确保向后兼容性。在以后的发行版中,这些脚本可能会过时,从而支持使用 bin 目录中的脚本。
在 NetBeans IDE 中注册数据库
现在,您已配置数据库,接下来可以在 IDE 中对其进行注册:
在“服务”窗口中,右键单击 "Java DB" 数据库节点,然后选择“属性”。
将打开 Java DB 设置对话框。
- 在“Java 数据库安装”文本字段中,输入在上一步中指定的 Java DB 根目录 (javadb) 的路径。
-
在“数据库位置”中,将路径设置为新创建的 "databases" 文件夹。下面的屏幕截图显示了 Macintosh 上 Java DB 服务器的示例设置。完成操作后,单击“确定”。

启动服务器并创建数据库
在“服务”窗口中右键单击 "Java DB" 节点时,将显示 Java DB 数据库菜单选项。通过这些上下文菜单项,可以启动和停止数据库服务器、创建新的数据库实例,以及在 IDE 中注册数据库服务器(如以上步骤所示)。要启动数据库服务器,请执行以下操作:
在“服务”窗口中,右键单击 "Java DB" 节点,然后选择“启动服务器”。请注意“输出”窗口中的以下输出内容,该内容指示服务器已经启动。

右键单击 "Java DB" 节点,然后选择“创建数据库”。
将打开“创建 Java DB 数据库”对话框。
-
在“数据库名称”文本字段中,键入 contact。此外,还应将“用户名”和“口令”设置为 nbuser。请注意,“数据库位置”是在从 GlassFish 安装 Java DB 过程中设置的缺省位置。如果单独安装了 Java DB,则此位置将会有所不同。单击“确定”。

连接到数据库
到目前为止,已在 IDE 中成功启动了数据库服务器并创建了一个名为 contact 的数据库实例。NetBeans IDE 的数据库资源管理器可从“服务”窗口打开,它提供了对数据库结构执行常见任务的功能。其中包括:
- 创建、删除和修改表
- 用数据填充表
- 查看表格数据
- 执行 SQL 语句和查询
要开始使用 contact 数据库,需要创建到该数据库的连接。要连接 contact,请执行以下操作:
在“服务”窗口 (Ctrl-5) 中展开数据库资源管理器,并找到新数据库。
右键单击数据库连接节点 ("jdbc:derby://localhost:1527/contact [nbuser on NBUSER]"),然后选择“连接”。
现在,将显示完整的连接节点图标 (
),这表示已成功建立连接。
创建表
刚创建的 contact 数据库当前为空。该数据库尚未包含任何表或数据。在 NetBeans IDE 中,可以通过下列任一方法添加数据库表:使用“创建表”对话框,或输入 SQL 语句并从 SQL 编辑器中直接运行该语句。要了解这两种方法的具体操作步骤,请参见以下部分:
使用“创建表”对话框
展开 contact 连接节点,请注意,该节点下面有三个子文件夹:“表”、“视图”和“过程”。右键单击“表”节点,然后选择“创建表”。
将打开“创建表”对话框。
- 在“表名称”文本字段中,键入 FRIENDS。
- 在显示的第一行中,选中“键”复选框。这将为表指定主键。关系数据库中的所有表都必须包含主键。请注意,在选中“键”复选框时,也将会自动选中“索引”和“唯一”复选框,而 "Null" 复选框则会被取消选中。这是因为主键用于标识数据库中的唯一行,并且缺省情况下用作表索引。由于必须标识所有行,因此主键不能包含 Null 值。
- 在“列名”中,输入 id。从“数据类型”下拉列表中选择 INTEGER。然后,单击“添加列”按钮。
接下来,重复执行此过程,以便指定下表中所示的字段:
| [选中] |
[选中] |
|
[选中] |
id |
INTEGER |
0 |
|
|
[选中] |
|
firstName |
VARCHAR |
20 |
|
|
[选中] |
|
lastName |
VARCHAR |
20 |
|
|
[选中] |
|
nickName |
VARCHAR |
30 |
|
|
[选中] |
|
friendSince |
DATE |
0 |
|
|
[选中] |
|
email |
VARCHAR |
60 |
您将创建一个名为 FRIENDS 的表,其中为每条联系人记录包含以下数据:

在确保“创建表”对话框包含与上图所示相同的内容后,单击“确定”。IDE 将在数据库中生成 FRIENDS 表,并且在数据库资源管理器的“表”下会显示新的 "FRIENDS" 表节点 (
)。在表节点下将列出各列(字段),其中最先列出主键 (
)。
使用 SQL 编辑器:
- 在数据库资源管理器中,右键单击 contact 连接节点或该节点下面的“表”节点,然后选择“执行命令”。将在主窗口中打开 SQL 编辑器,其中显示一个空画布。
- 在 SQL 编辑器中输入以下查询。这是将要创建的 COLLEAGUES 表的表定义:
CREATE TABLE "COLLEAGUES" (
"ID" INTEGER not null primary key,
"FIRSTNAME" VARCHAR(30),
"LASTNAME" VARCHAR(30),
"TITLE" VARCHAR(10),
"DEPARTMENT" VARCHAR(20),
"EMAIL" VARCHAR(60)
);
请注意:SQL 编辑器中形成的语句和查询将以结构化查询语言进行解析。SQL 遵循严格的语法规则,在 IDE 编辑器中执行操作时应熟悉这些规则。根据不同的数据库管理系统,SQL 语法也会有所不同。有关详细的准则,请参见《Java DB Reference Manual》(《Java DB 参考手册》)。
单击编辑器顶部任务栏中的“运行 SQL”(
) 按钮 (Ctrl-Shift-E) 以执行查询。在“输出”窗口 (Ctrl-4) 中,将显示一条消息,指示已成功执行该语句。

- 要验证更改,请在数据库资源管理器中右键单击 contact 连接节点,然后选择“刷新”。此操作会将运行时 UI 组件更新为指定数据库的当前状态。当从 NetBeans IDE 中的 SQL 编辑器运行查询时,必须执行此步骤。请注意,“服务”窗口中的“表”下面现在将显示新的 "COLLEAGUES" 表节点 (
)。
添加表数据
现在,您已在 contact 数据库中创建了一个或多个表,接下来可以开始用数据填充表。要将完整的记录(行)添加到 FRIENDS 表中,请创建一条用于为表架构中的每个字段提供值的语句。可以使用 SQL 编辑器设计一条用于添加新记录的简单语句:
- 在数据库资源管理器中右键单击“表”节点,然后选择“执行命令”。将在主窗口中打开 SQL 编辑器,其中显示一个空画布。
- 在 SQL 编辑器中,输入以下语句。
INSERT INTO "NBUSER"."FRIENDS" VALUES (1,'Theodore','Bagwell','T-Bag','2004-12-25','tbag@foxriver.com')
- 在 SQL 编辑器中单击鼠标右键,然后选择“运行语句”。“输出”窗口将显示一条消息,指示已成功执行该语句。
-
要验证是否已将新记录添加到 FRIENDS 表中,请在“服务”窗口中右键单击 "FRIENDS" 表节点,然后选择“查看数据”。将在主窗口中再次打开 SQL 编辑器。选择“查看数据”时,将在 SQL 编辑器的上方窗格中自动生成一个查询,用于选择表中的所有数据。将在 SQL 编辑器的下方窗格中显示该语句的结果。在这种情况下,FRIENDS 表将显示在下方窗格中。请注意,已添加了一个新行,其中包含刚通过 SQL 语句提供的数据。

删除表
在下一步中,将使用外部 SQL 脚本创建一个新的 COLLEAGUES 表。但是,在上面的使用 SQL 编辑器中刚创建了一个 COLLEAGUES 表。要确保 SQL 脚本确实创建一个新表,现在可以删除已创建的 COLLEAGUES 表。要删除数据库表,请执行以下操作:
- 在数据库资源管理器中右键单击该表节点,然后选择“删除”。
- 在“确认对象删除”对话框中,单击“是”。请注意,将会立即从数据库资源管理器中删除该表节点。
使用外部 SQL 脚本
从外部 SQL 脚本中发出命令是管理数据库的一种常用方式。您可能已在其他位置创建了 SQL 脚本,并希望将其导入到 NetBeans IDE 中,以对指定的数据库运行该脚本。
为了演示起见,请下载 colleagues.sql 并将其保存到计算机上的某一位置。此脚本将创建一个名为 COLLEAGUES 的新表,并用数据填充该表。要对 contact 数据库运行此脚本,请执行以下操作:
- 从 IDE 的主菜单中选择“文件”>“打开文件”。在文件浏览器中,导航至 colleagues.sql 文件的保存位置,然后单击“打开”。将自动在 SQL 编辑器中打开该脚本。
-
确保从编辑器顶部工具栏的“连接”下拉框中选择 contact 连接。

- 单击 SQL 编辑器任务栏中的“运行 SQL”(
) 按钮。将对选定的数据库执行该脚本,并在“输出”窗口中生成任何反馈。
- 要验证更改,请在“服务”窗口中右键单击 contact 连接节点,然后选择“刷新”。请注意,在“服务”窗口中的 contact 下面将显示通过 SQL 脚本创建的新 COLLEAGUES 表的表节点。
- 要查看新表中包含的数据,请从表的右键单击菜单中选择“查看数据”,如上所述。通过这种方法,还可以将表格数据与 SQL 脚本中包含的数据进行比较,以查看它们是否匹配。
重新创建来自其他数据库的表
如果您有一个来自其他数据库的表,并希望通过 NetBeans IDE 在所使用的数据库中重新创建该表,IDE 为此提供了非常方便的工具。首先,需要在 IDE 中注册第二个数据库,其过程与本教程开始部分描述的过程类似。就本教程而言,将使用 sample 数据库,如果您安装 GlassFish 应用服务器和 NetBeans IDE,该数据库将与 Java DB 打包在一起。此过程实质上分两部分执行:首先“抓取”选定表的表定义,然后在选择的数据库中重新创建该表,具体操作如下所示:
- 通过以下方法连接 sample 数据库:在数据库资源管理器中右键单击该连接节点,然后选择“连接”(口令为 app)。
-
展开“表”节点。右键单击 "CUSTOMER" 表节点,然后选择“抓取结构”。

- 在打开的“抓取表”对话框中,指定计算机上的某一位置,以保存将要创建的抓取文件。单击“保存”。抓取文件记录选定表的定义。
- 在数据库资源管理器中,右键单击 contact 数据库连接下的“表”节点,然后选择“重新创建表”。
在打开的“重新创建表”对话框中,导航至 CUSTOMER 抓取文件的保存位置,然后单击“打开”。将打开“命名表”对话框。

-
此时,可以更改表名称或编辑表定义。否则,请单击“确定”,以在 contact 数据库中立即创建表。contact 连接节点下将显示新的 "CUSTOMER" 表节点。

另请参见
以下内容是对“使用 Java DB (Derby) 数据库”教程的总结。本教程演示了如何在 NetBeans IDE 中设置 Java DB 数据库连接。接着,演示了如何使用 IDE“服务”窗口中的数据库资源管理器来创建、查看、修改和删除表。此外,本教程还演示了如何使用 SQL 编辑器向表中添加数据,以及如何在 IDE 中使用来自其他数据库的定义重新创建表。
有关更多相关的高级教程,请参见以下资源: