corner imagecorner image
IDEPlatformPluginsDocs & 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 应用服务器打包在一起,也包含在 JDK 6 中。有关 Java DB 数据库的详细信息,请查阅正式文档

预计时间:30 分钟

目录

本页上的内容适用于 NetBeans IDE 6.9 和 7.0

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

软件或资源 要求的版本
NetBeans IDE 6.8、6.9 或 7.0 Java 下载
Java Development Kit (JDK) 版本 6 或版本 5
Java DB 版本 10.4.x

注意:Java DB 包含在 JDK 6 和 GlassFish 应用服务器(v2 和 v3)中。在安装这些软件产品中的任意产品时,即会安装该数据库。

配置数据库

如果已在 NetBeans IDE 安装中注册了 GlassFish Enterprise 服务器,则将为您注册 Java DB。因此,可以向下跳转至启动服务器并创建数据库

如果单独下载了 GlassFish 应用服务器,并需要获取有关在 NetBeans IDE 中对其进行注册的帮助,请参见 IDE“帮助内容”(F1) 中的注册 GlassFish 应用服务器实例

如果仅下载了 Java DB,请执行以下操作:

  1. 运行自解压文件。将在与该文件相同的位置创建一个名为 "javadb" 的文件夹。如果仅下载了 Java DB,并且希望将该数据库服务器放在与其解压缩位置不同的位置中,现在应重新对其定位。
  2. 在系统上,创建一个新目录,作为数据库服务器的各实例的 Home 目录。例如,可以在 Java DB 根目录 (javadb) 或其他任意位置创建此文件夹。

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

  • demo 子目录包含演示程序。
  • bin 子目录包含用于执行实用程序和设置环境的脚本。
  • javadoc 子目录包含通过源代码注释生成的 API 文档。
  • docs 子目录包含 Java DB 文档。
  • lib 子目录包含 Java DB jar 文件。

在 NetBeans IDE 中注册数据库

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

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

    Java DB 设置对话框打开。

  2. 在“Java 数据库安装”文本字段中,输入在上一步中指定的 Java DB 根目录 (javadb) 的路径。

  3. 对于数据库位置,将路径设置为创建的 Home 目录或保留缺省设置。下面的屏幕截图显示了 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. 在“服务”窗口中展开数据库资源管理器,并找到新数据库。

    “服务”窗口中的 contact 数据库
    注意:sample [app on APP] 是缺省数据库架构。
  2. 右键单击数据库连接节点 (jdbc:derby://localhost:1527/contact [nbuser on NBUSER]),然后选择“连接”。

    现在,将显示完整的连接节点图标 (连接节点图标),这表示已成功建立连接。
  3. 为数据库创建一个适当的显示名称。要执行次操作,请右键单击数据库连接节点 (jdbc:derby://localhost:1527/contact [nbuser on NBUSER]) 然后选择“属性”。选择“显示名称”旁的省略号 (...) 按钮,然后在文本字段输入 Contact DB
    现在,IDE 中的数据库具备了一个更适当的显示名称。

创建表

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

使用“创建表”对话框

  1. 扩展 Contact 连接节点,请注意,还有几个架构子节点。app 架构是适用于本教程的唯一架构。右键单击 APP 节点,然后选择“设置为缺省架构”。

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

  3. 在“表名称”文本字段中,键入 FRIENDS
  4. 单击“添加列”。随即出现“添加列”对话框。
  5. 在“列名”中,输入 id。从“数据类型”下拉列表中选择 INTEGER
  6. 在“约束”下,选中“主键”复选框以将此列指定为表的主键。关系数据库中的所有表都必须包含主键。请注意,在选中“主键”复选框时,还将会自动选中“索引”和“唯一”复选框,而 "Null" 复选框则会被取消选中。这是因为主键用于标识数据库中的唯一行,并且缺省情况下用作表索引。由于必须标识所有行,因此主键不能包含 Null 值。
    将列添加到表
  7. 接下来,重复执行此过程,以便指定下表中所示的字段:
  8. 索引 Null 唯一 列名 数据类型 大小
    [选中] [选中] [选中] id INTEGER 0
    [选中] firstName VARCHAR 20
    [选中] lastName VARCHAR 20
    [选中] nickName VARCHAR 30
    [选中] friendSince DATE 0
    [选中] email VARCHAR 60

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

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

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

使用 SQL 编辑器:

  1. 在数据库资源管理器中,右键单击 Contact DB 连接节点或该节点下面的“表”节点,然后选择“执行命令”。会在 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 DB 连接节点,然后选择“刷新”。此操作会将运行时 UI 组件更新为指定数据库的当前状态。当从 NetBeans IDE 中的 SQL 编辑器运行查询时,必须执行此步骤。请注意,“服务”窗口中的“表”下面现在将显示新的 "COLLEAGUES" 表节点 (表节点图标)。

添加表数据

现在,您已在 contact 数据库中创建了一个或多个表,接下来可以开始用数据填充表。有下列几种方式可以将记录添加到表中:

阅读下节,了解如何使用用数据填充 FRIENDS 表的所有方法。

运行 SQL 语句

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

    添加到 FRIENDS 表中的新记录

使用 SQL 编辑器

  1. 右键单击 FRIENDS 表节点并选择“查看数据”(如果在上一部分的最后一步中没有执行此操作)。
  2. 单击“插入记录”(Alt-I) 按钮以添加一行。
    即会显示“插入记录”对话框。
  3. 单击每个单元并输入记录。注意,对于“日期”数据类型的单元,可以从日历中选择一个日期。完成后单击“确定”。
    添加到 FRIENDS 表中的新记录
    在 SQL 编辑器中,可以通过单击行表头对结果进行排序、修改和删除现有记录,并查看编辑器中正在执行操作的 SQL 脚本(通过弹出式菜单显示 SQL 脚本命令)。

删除表

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

  1. 在数据库资源管理器中右键单击该表节点,然后选择“删除”。
    注意,将会立即从数据库资源管理器中删除该表节点而不经确认。

使用外部 SQL 脚本

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

为了便于说明,请将 SQL 从 colleagues.sql 复制到一个文本文件中,然后将其保存到计算机上的某个位置。此脚本将创建一个名为 COLLEAGUES 的新表,并用数据填充该表。要对 contact 数据库运行此脚本,请执行以下操作:

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

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

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

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

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

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

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

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

另请参见

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

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