使用NetBeans将GUI连接到Derby数据库

2024-01-18 02:38

本文主要是介绍使用NetBeans将GUI连接到Derby数据库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本教程指导您如何将名为 ContactEditor 的应用程序的 GUI 连接到 Derby 数据库。在此过程中,您将向 GUI 添加数据敏感的 JDBC 组件,使该程序能够与雇员数据库交互。

在本教程中,您将学会如何:

l      使用 GUI Builder 界面

l      连接两个 GUI 窗口

l      添加和编辑 JDBCRowSet

l      添加数据模型

l      GUI 连接到 Derby 数据库

l      将数据绑定到 UI 组件

l      UI 组件连接到应用程序逻辑

本教程大约需要 30 分钟完成。

请注意本教程引用了名为 GUI DB Exercise Initial 的项目作为样例,供您在使用这些步骤时参考。另请注意,归档文件中的 GUI DB Exercise Final 项目显示了完成的应用程序。

入门
GUI Builder Quickstart 教程中,我们致力于为 ContactEditorUI.java 应用程序构建名为 ContactEditorUI 的对话框。在本教程中,我们将以前创建的 ContactEditorUI GUI 窗体和该应用程序 UI 的主(父)窗口都连接到 Derby 数据库。请注意,尽管本教程中的图片说明的是 Macintosh OS-X 上的过程,但在其他支持平台(如 Windows Solaris)上,步骤几乎相同。

要成功完成本教程,您必须已经安装并正在运行 IDE 包含的 Derby 数据库服务器。请注意,到 NetBeans IDE 5.5 Beta 版时,包含的数据库就不再叫作 Derby 了,而是被称为 Java DB。您还需要将包含在样例项目中的必要的支持类(在 Project 窗口中可见)编译进项目。有关安装和配置 Derby 以用于 NetBeans 的更多信息,请参见 NetBeans Derby tutorial

最后,您还必须已经创建了 contact_database 并将 User Name Password 设置为 nbuser。还要向数据库添加必要的字段,添加的方法是使用 Create Table UI 或执行以下 SQL 语句:

    CREATE TABLE "CONTACTS"
    (
    "ID" INTEGER not null primary key,
    "FIRST_NAME" VARCHAR(50),
    "LAST_NAME" VARCHAR(50),
    "TITLE" VARCHAR(50),
    "NICKNAME" VARCHAR(50),
    "DISPLAY_FORMAT" SMALLINT,
    "MAIL_FORMAT" SMALLINT,
    "EMAIL_ADDRESSES" VARCHAR(1000)
    )
    

请注意,如果您使用 SQL 命令而不是 Create Table UI 创建表,要看到 Contacts 表,您需要在 Runtime 窗口刷新 Tables 节点。

注意:要成功完成本教程,您必须在 JDK 5 上运行 NetBeans IDE 5.0

添加数据模型


因为应用程序主窗口 GUI 已经准备妥当,我们可以直接跳到添加数据敏感组件这一步,它使我们能够与数据库中的数据交互。在本部分,我们将添加数据模型以确保数据在正确的窗体中向 UI 显示。

添加 JDBCRowSet

因为我们需要的 JDBCRowSet 已经包含在 GUI DB 示例项目中,我们只需将它添加到应用程序 GUI 中即可。而包含的 RowSets 已经有了 BeanInfos,所以我们可以像使用 IDE 中的其他组件一样使用它们,在 Properties 窗口中显示它们的属性。因为只打算使用这个类一次,所以不需要为了将它添加到窗体而将 JDBCRowSet 安装到 Palette。但是如果想重复使用某个类,这样做就很有价值了,我们为了节省时间和精力只是复制粘贴它。

添加 JDBCRowSet 到窗体:

1.       Projects 窗口中,右键单击 JDBCRowSet.java 节点并从弹出菜单中选择 Copy

2.       将它粘贴到设计区域的任意位置。

IDE JDBCRowSet 添加到窗体并且表示行设置的节点出现在 Inspector 窗口中。

请注意,Inspector 窗口中的节点是在 Other Components 节点内添加的。如果在试图粘贴行设置时收到错误消息,则编译项目,然后再试。

设置 JDBCRowSet 的属性

现在需要编辑 JDBCRowSet 属性,这样它就能引用我们先前创建的 Contacts 数据库了。还需要设置驱动程序及其使用的路径并提供它进行连接时需要的密码和用户名。

编辑 JDBCRowSet 的属性:

1.       Inspector 窗口(不是 Projects 窗口)中选择 JDBCRowSet1 节点。

2.       Properties 窗口中,为命令属性输入 select * from contacts

3.       为驱动程序属性输入 org.apache.derby.jdbc.ClientDriver

4.       url 属性输入 jdbc:derby://localhost:1527/contact_database

5.       为密码属性输入 nbuser

6.       为用户名属性输入 nbuser

添加数据模型

现在我们需要添加数据模型,它将成为应用程序与数据库之间的一层,并封装数据访问,为访问和修改数据提供逻辑。示例项目中再次提供了必要的 ContactsModel 类,所以我们只需将它添加到应用程序。包含这样一个类可以在不迫使 GUI 发生变化的情况下更改数据模型。

向窗体添加数据模型:

1.       Projects 窗口中,右键单击 ContactsModel.java 节点并从弹出菜单中选择 Copy

2.       将它粘贴到设计区域的任意位置。

IDE ContactModel 添加到窗体并且表示行设置的节点出现在 Inspector 窗口中的 Other Components 节点内。

改变数据模型的变量名:

1.       Inspector 窗口中,右键单击 contactsModel1 节点并从弹出菜单中选择 Change Variable Name

2.       在显示的 Rename 对话框中,输入新变量名 contactsModel 并单击 OK

设置数据模型的 rowSet 属性:

1.       Inspector 窗口中,选择 contactsModel 节点。

2.       Properties 窗口中,单击 rowSet 属性的省略号按钮 (...)

3.       在显示的编辑器中,选择 Get Parameter From 窗格中的 Bean 单选按钮。

4.       Select Bean 组合框中,选择 jDBCRowSet1

5.       单击 OK 退出对话框。

IDE 设置窗体的 contactsModel 数据模型以使用 jDBCRowSet

将数据库绑定到 UI


为了让 GUI 与存储在数据库中的联系人信息交互,需要将数据绑定到组件,这样才能显示这些数据并允许用户与它进行交互。在本部分,我们开始将 GUI 连接到 JDBC 组件,启用与数据库的交互。

设置 JTable RowSet 模型

为了使 GUI JTable 能够正确显示联系人数据,我们需要设置它以使用提供的 RowSetTableModel 类。还需要将 RowSetTableModel 指向先前添加的 JDBCRowSet,使它能够向 JTable 自身转发列信息和数据。最后,我们将编辑 rowSetTableModel1 实例,仅让那些我们想显示的列在 GUI 主窗口中可见。

向窗体添加 RowSetTableModel

1.       Projects 窗口中,右键单击 RowSetTableModel.java 节点并从弹出菜单中选择 Copy

2.       将它粘贴到设计区域的任意位置。

设置表模块的 rowSet 属性:

1.       Inspector 中,选择 rowSetTableModel1 节点。

2.       Properties 窗口中,单击省略号按钮 (...) 打开 rowSet 属性编辑器。

3.       Get Parameter From 窗格中,选择 Bean 单选按钮。

4.       Select Bean 组合框中,选择 jDBCRowSet1

5.       单击 OK 退出对话框。.

设置 JTable 的模型属性:

1.       Inspector 中,选择 JTable。请注意,当您在窗体中选择 JTable 时,JScrollPane 组件在 Inspector 窗口中被高亮显示并且可以在 Properties 窗口中编辑其属性(不是 JTable 的属性)。

2.       Properties 窗口中,单击省略号按钮 (...) 打开模型属性的编辑器。

3.       在显示的模型编辑器中,在 Select Mode 组合框中选择 Form Connection

4.       选择 Bean 单选按钮并在 Component 组合框中选择 rowSetTableModel1

5.       单击 OK 关闭编辑器。

要决定表的哪些列在运行时可见,需要明确设置它们。为此,我们需要调整 rowSetTableModel1 的属性。

设置表列的可见性:

1.       Inspector 中,选择 rowSetTableModel1 节点。

2.       Properties 窗口中,单击省略号按钮 (...) 打开 visibleColumns 属性编辑器。

3.       在显示的编辑器中,在 Item 字段输入以下列名,每次输入一个并单击 Add

m         NICKNAME

m         FIRST_NAME

m         LAST_NAME

4.       单击 OK 退出对话框。.

IDE 设置窗体的 JTable 以显示指定的列,并且列标题按它们被添加的顺序出现在窗体中。

设置主窗口关闭行为

在应用程序窗口关闭时,要释放驻留在模型中的各种资源,我们还需要明确指定预期的行为。在本部分,我们将为应用程序主窗口和 Details 对话框,设置控制此行为的事件动作。

为主窗口 Close 按钮编辑事件动作:

1.       右键单击 Close 按钮并选择 Events > Action > actionPerformed

2.       在源编辑器中,选择光标所在的行(它应显示为 //TODO add your handling code here),在 editContactActionPerformed 方法主体中添加以下代码:


    contactsModel.dispose(); // releases resources held by the model (like DB connection)
    System.exit(0);  // exists the application

3.       单击 Design 按钮,返回 GUI Builder

为主窗口编辑事件动作:

1.       Inspector 中,右键单击 JFrame 容器并选择 Events > Window >windowClosing

2.       在源编辑器中,选择光标所在的行。然后添加以下代码:

    contactsModel.dispose(); // releases resources held by the model (like DB connection)
    System.exit(0);  // exists the application

3.       再次单击 Design 按钮,返回 GUI Builder

添加按钮事件处理程序

为了使主窗口中的各种按钮引起预期的行为,必须给它们设置动作。本部分正是要完成这一工作,通过定义它们必需的事件处理程序触发相应的事件。

Edit 按钮添加事件处理程序:

1.       右键单击 Edit 按钮并选择 Events > Action > actionPerformed

2.       在源编辑器中,选择光标所在的行。然后添加以下代码:

3.       将以下方法添加到 contactEditor 类主体的代码中(在或大约在 346 行)。

private void showDetailDialog(boolean inserting) {
    contactsModel.setInsertMode(inserting);
    firstNameField.setText(contactsModel.getFirstName());
    lastNameField.setText(contactsModel.getLastName());
    titleField.setText(contactsModel.getTitle());
    nicknameField.setText(contactsModel.getNickname());
    displayFormat.setSelectedIndex(contactsModel.getDisplayFormat());
    emailField.setText("");
    switch (contactsModel.getMailFormat()) {
    case 0: htmlChoice.setSelected(true); break;
    case 1: plainTextChoice.setSelected(true); break;
    case 2: customChoice.setSelected(true); break;
    }
    javax.swing.DefaultListModel listModel = new javax.swing.DefaultListModel();
    Object[] mails = contactsModel.getEmails();
    for (int i=0; i
    emailsList.setModel(listModel);
    details.pack();
    details.setVisible(true);
}

IDE Edit 按钮添加侦听器使该按钮能够在单击时与 contactsModel 和数据库交互,

Add 按钮添加事件处理程序:

1.       右键单击 Add 按钮并选择 Events > Action > actionPerformed

2.       在源编辑器中,选择光标所在的行。然后添加以下代码:


   showDetailDialog(true);

                

Remove 按钮添加事件处理程序:

1.       右键单击 Remove 按钮并选择 Events > Action > actionPerformed

2.       在源编辑器中,选择光标所在的行。然后添加以下代码:



    contactsModel.removeContact();

              
设置表的选择模型

现在是设置表的选择模型的时候了,它将侦听模型中属性的更改并决定是否可以对选定的联系人进行编辑。请注意,对于本教程,ContactsModel 实现允许编辑或删除任何选定的联系人。

设置表的选择模型:

1.       Inspector 窗口中,展开 JScrollPane1 节点并选择 JTable

2.       Properties 窗口中,单击 selectionModel 属性的省略号按钮。

3.       在显示的编辑器中,选择 Property 单选按钮并单击省略号按钮。

4.       在打开的 Select Property 对话框中,在组合框中选择 contactsModel。然后选择 Properties 窗格中的 contactSelection

5.       单击 OK 退出对话框。

contactsModel Edit Remove 按钮连接:

1.       右键单击设计区域的 Edit 按钮并从弹出菜单中选择 Events > PropertyChange > propertyChange

2.       在源编辑器中光标所在的行,复制并粘贴以下代码。



    editContact.setEnabled(contactsModel.isEditingEnabled());

                    

3.       Remove 按钮重复此步骤,但这次使用以下代码:



    removeContact.setEnabled(contactsModel.isRemovalEnabled());

          

IDE 设置这些按钮以启用对数据库联系人的编辑和删除。




这篇关于使用NetBeans将GUI连接到Derby数据库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/617893

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]