corner imagecorner image
FeaturesPluginsDocs & SupportCommunityPartners

使用 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 分钟

目录

本页上的内容适用 NetBeans IDE 6.5

要学习本教程,您需要具备以下软件和资源。

软件或资源 要求的版本
NetBeans IDE 6.5 Java 版本
Java Development Kit (JDK) 版本 6 或版本 5
Java DB 版本 10.3.x

注意: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,请执行以下操作:

  1. 运行自解压文件。将在与该文件相同的位置创建一个名为 "javadb" 的文件夹。如果仅下载了 Java DB,并且希望将该数据库服务器放在与其解压缩位置不同的位置中,现在应重新对其定位。
  2. 在 Java DB 根目录 (javadb) 中,创建一个名为 "databases" 的新文件夹。稍后,将使用此文件夹存放该数据库服务器的各个实例。请注意,此文件夹并非必须位于数据库根目录中。

在继续执行下一步操作之前,应了解 Java DB 根目录的各个组成部分,这一点很重要:

  • demo 子目录包含演示程序。
  • bin 子目录包含用于执行实用程序和设置环境的脚本。
  • javadoc 子目录包含通过源代码注释生成的 API 文档。
  • docs 子目录包含 Java DB 文档。
  • lib 子目录包含 Java DB jar 文件。
  • frameworks 子目录包含用于执行实用程序和设置环境的旧式脚本。通常,提供这些脚本是为了确保向后兼容性。在以后的发行版中,这些脚本可能会过时,从而支持使用 bin 目录中的脚本。

在 NetBeans IDE 中注册数据库

现在,您已配置数据库,接下来可以在 IDE 中对其进行注册:

  1. 在“服务”窗口中,右键单击 "Java DB" 数据库节点,然后选择“属性”。

    将打开 Java DB 设置对话框。

  2. 在“Java 数据库安装”文本字段中,输入在上一步中指定的 Java DB 根目录 (javadb) 的路径。
  3. 在“数据库位置”中,将路径设置为新创建的 "databases" 文件夹。下面的屏幕截图显示了 Macintosh 上 Java DB 服务器的示例设置。完成操作后,单击“确定”。

    Java DB 设置对话框

启动服务器并创建数据库

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

  1. 在“服务”窗口中,右键单击 "Java DB" 节点,然后选择“启动服务器”。请注意“输出”窗口中的以下输出内容,该内容指示服务器已经启动。

    启动数据库服务器后的“输出”窗口显示内容
  2. 右键单击 "Java DB" 节点,然后选择“创建数据库”。

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

    “创建 Java DB 数据库”对话框

连接到数据库

到目前为止,已在 IDE 中成功启动了数据库服务器并创建了一个名为 contact 的数据库实例。NetBeans IDE 的数据库资源管理器可从“服务”窗口打开,它提供了对数据库结构执行常见任务的功能。其中包括:

  • 创建、删除和修改表
  • 用数据填充表
  • 查看表格数据
  • 执行 SQL 语句和查询

要开始使用 contact 数据库,需要创建到该数据库的连接。要连接 contact,请执行以下操作:

  1. 在“服务”窗口 (Ctrl-5) 中展开数据库资源管理器,并找到新数据库。

    “服务”窗口中的 contact 数据库
  2. 右键单击数据库连接节点 ("jdbc:derby://localhost:1527/contact [nbuser on NBUSER]"),然后选择“连接”。

    现在,将显示完整的连接节点图标 (连接节点图标),这表示已成功建立连接。

创建表

刚创建的 contact 数据库当前为空。该数据库尚未包含任何表或数据。在 NetBeans IDE 中,可以通过下列任一方法添加数据库表:使用“创建表”对话框,或输入 SQL 语句并从 SQL 编辑器中直接运行该语句。要了解这两种方法的具体操作步骤,请参见以下部分:

使用“创建表”对话框

  1. 展开 contact 连接节点,请注意,该节点下面有三个子文件夹:“表”、“视图”和“过程”。右键单击“表”节点,然后选择“创建表”。

    将打开“创建表”对话框。
  2. 在“表名称”文本字段中,键入 FRIENDS
  3. 在显示的第一行中,选中“键”复选框。这将为表指定主键。关系数据库中的所有表都必须包含主键。请注意,在选中“键”复选框时,也将会自动选中“索引”和“唯一”复选框,而 "Null" 复选框则会被取消选中。这是因为主键用于标识数据库中的唯一行,并且缺省情况下用作表索引。由于必须标识所有行,因此主键不能包含 Null 值。
  4. 在“列名”中,输入 id。从“数据类型”下拉列表中选择 INTEGER。然后,单击“添加列”按钮。
  5. 接下来,重复执行此过程,以便指定下表中所示的字段:

    索引 Null 唯一 列名 数据类型 大小
    [选中] [选中] [选中] id INTEGER 0
    [选中] firstName VARCHAR 20
    [选中] lastName VARCHAR 20
    [选中] nickName VARCHAR 30
    [选中] friendSince DATE 0
    [选中] email VARCHAR 60

    您将创建一个名为 FRIENDS 的表,其中为每条联系人记录包含以下数据:

    • 名字
    • 姓氏
    • 昵称
    • 交友开始日期
    • 电子邮件地址
    包含联系人表的选定字段的“创建表”对话框
  6. 在确保“创建表”对话框包含与上图所示相同的内容后,单击“确定”。IDE 将在数据库中生成 FRIENDS 表,并且在数据库资源管理器的“表”下会显示新的 "FRIENDS" 表节点 (表节点图标)。在表节点下将列出各列(字段),其中最先列出主键 (主键节点图标)。

    “服务”窗口中显示的 FRIENDS 表

使用 SQL 编辑器:

  1. 在数据库资源管理器中,右键单击 contact 连接节点或该节点下面的“表”节点,然后选择“执行命令”。将在主窗口中打开 SQL 编辑器,其中显示一个空画布。
  2. 在 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 参考手册》)。

  3. 单击编辑器顶部任务栏中的“运行 SQL”(“运行 SQL”按钮) 按钮 (Ctrl-Shift-E) 以执行查询。在“输出”窗口 (Ctrl-4) 中,将显示一条消息,指示已成功执行该语句。

    “输出”窗口指示语句执行成功
  4. 要验证更改,请在数据库资源管理器中右键单击 contact 连接节点,然后选择“刷新”。此操作会将运行时 UI 组件更新为指定数据库的当前状态。当从 NetBeans IDE 中的 SQL 编辑器运行查询时,必须执行此步骤。请注意,“服务”窗口中的“表”下面现在将显示新的 "COLLEAGUES" 表节点 (表节点图标)。

添加表数据

现在,您已在 contact 数据库中创建了一个或多个表,接下来可以开始用数据填充表。要将完整的记录(行)添加到 FRIENDS 表中,请创建一条用于为表架构中的每个字段提供值的语句。可以使用 SQL 编辑器设计一条用于添加新记录的简单语句:

  1. 在数据库资源管理器中右键单击“表”节点,然后选择“执行命令”。将在主窗口中打开 SQL 编辑器,其中显示一个空画布。
  2. 在 SQL 编辑器中,输入以下语句。
    INSERT INTO "NBUSER"."FRIENDS" VALUES (1,'Theodore','Bagwell','T-Bag','2004-12-25','tbag@foxriver.com')
  3. 在 SQL 编辑器中单击鼠标右键,然后选择“运行语句”。“输出”窗口将显示一条消息,指示已成功执行该语句。
  4. 要验证是否已将新记录添加到 FRIENDS 表中,请在“服务”窗口中右键单击 "FRIENDS" 表节点,然后选择“查看数据”。将在主窗口中再次打开 SQL 编辑器。选择“查看数据”时,将在 SQL 编辑器的上方窗格中自动生成一个查询,用于选择表中的所有数据。将在 SQL 编辑器的下方窗格中显示该语句的结果。在这种情况下,FRIENDS 表将显示在下方窗格中。请注意,已添加了一个新行,其中包含刚通过 SQL 语句提供的数据。

    添加到 FRIENDS 表中的新记录

删除表

在下一步中,将使用外部 SQL 脚本创建一个新的 COLLEAGUES 表。但是,在上面的使用 SQL 编辑器中刚创建了一个 COLLEAGUES 表。要确保 SQL 脚本确实创建一个新表,现在可以删除已创建的 COLLEAGUES 表。要删除数据库表,请执行以下操作:

  1. 在数据库资源管理器中右键单击该表节点,然后选择“删除”。
  2. 在“确认对象删除”对话框中,单击“是”。请注意,将会立即从数据库资源管理器中删除该表节点。

使用外部 SQL 脚本

从外部 SQL 脚本中发出命令是管理数据库的一种常用方式。您可能已在其他位置创建了 SQL 脚本,并希望将其导入到 NetBeans IDE 中,以对指定的数据库运行该脚本。

为了演示起见,请下载 colleagues.sql 并将其保存到计算机上的某一位置。此脚本将创建一个名为 COLLEAGUES 的新表,并用数据填充该表。要对 contact 数据库运行此脚本,请执行以下操作:

  1. 从 IDE 的主菜单中选择“文件”>“打开文件”。在文件浏览器中,导航至 colleagues.sql 文件的保存位置,然后单击“打开”。将自动在 SQL 编辑器中打开该脚本。
  2. 确保从编辑器顶部工具栏的“连接”下拉框中选择 contact 连接。

    SQL 编辑器工具栏中的“连接”下拉框
  3. 单击 SQL 编辑器任务栏中的“运行 SQL”(“运行 SQL”按钮) 按钮。将对选定的数据库执行该脚本,并在“输出”窗口中生成任何反馈。
  4. 要验证更改,请在“服务”窗口中右键单击 contact 连接节点,然后选择“刷新”。请注意,在“服务”窗口中的 contact 下面将显示通过 SQL 脚本创建的新 COLLEAGUES 表的表节点。
  5. 要查看新表中包含的数据,请从表的右键单击菜单中选择“查看数据”,如上所述。通过这种方法,还可以将表格数据与 SQL 脚本中包含的数据进行比较,以查看它们是否匹配。

重新创建来自其他数据库的表

如果您有一个来自其他数据库的表,并希望通过 NetBeans IDE 在所使用的数据库中重新创建该表,IDE 为此提供了非常方便的工具。首先,需要在 IDE 中注册第二个数据库,其过程与本教程开始部分描述的过程类似。就本教程而言,将使用 sample 数据库,如果您安装 GlassFish 应用服务器和 NetBeans IDE,该数据库将与 Java DB 打包在一起。此过程实质上分两部分执行:首先“抓取”选定表的表定义,然后在选择的数据库中重新创建该表,具体操作如下所示:

  1. 通过以下方法连接 sample 数据库:在数据库资源管理器中右键单击该连接节点,然后选择“连接”(口令为 app)。
  2. 展开“表”节点。右键单击 "CUSTOMER" 表节点,然后选择“抓取结构”。

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

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

    “服务”窗口中显示的新 "CUSTOMER" 表节点

另请参见

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

有关更多相关的高级教程,请参见以下资源: