构建一个 Java 桌面数据库应用程序

本教程介绍了如何创建一个能够对数据库进行访问和更新的桌面 Java 应用程序。该教程利用了NetBeans IDE 6.0 对以下技术的支持

l      Java 持久性 API它帮助使用 Java 代码与数据库进行交互操作。

l      Beans 绑定 (JSR-295) 它为不同的 JavaBeans 组件提供一种拥有相互同步属性值的方法。例如可以使用 beans 绑定将 Jtable 可视化组件中的单元值与实体类中的字段值同步。(而实体类则代表数据库表的列。)

l      Swing 应用程序框架 (JSR-296) ,它为快速创建桌面应用程序提供一些有用的构建程序块。

    我们将使用在可视化数据中使用的一个自定义组件来创建一个数据库 CRUD (创建、读、更新、删除)应用程序。

    本次编写的教程配合 NetBeans IDE 6.0 Preview (Milestone 9) build 使用。本教程不适于较早的 milestone build 重要构件版本)。此外,在后续构件版本中会存在一些变更,这些变更会影响本教程的准确性。

    本教程在很大程度上是以视频演示为基础的,该视频演示基于较早的开发构件版本。在演示制作完成以后,用户界面已经发生了一些改变,所以,可能会发现本教程和演示之间会存在一些差异。

预计持续时间:45 分钟

前提条件

    本文假定您基本了解以下技术,或者有使用这些技术编程的经验:

l      Java 编程

l      NetBeans IDE

教程所需的软件

    本教程需要在计算机上安装以下软件

l      NetBeans IDE 6.0 Preview (Milestone 9) 下载

l      Java Standard Development Kit (JDK) 5.0 或者 6.0 下载

l      Java DB 数据库服务器Java DB 包含在 JDK 6 中)

l      SQL 脚本,位于 http://usersguide.netbeans.org/files/documents/40/1423/car.sql

l      CarPreview 项目位于http://usersguide.netbeans.org/files/documents/40/1433/CarPreview.zip

建立数据库

    开始在 IDE 中创建桌面 CRUD(创建、读、更新、删除)应用程序之前,应该将 IDE 与应用程序将要使用的数据库相连。提前建立这种连接,可以利用 IDE 自动将数据库与应用程序绑定的功能。

    在本教程中,我们提供使用 Java DB 数据库的指令,因为有一个便捷界面可以从 IDE 中启动和停止 DB 数据库服务器。也可以使用一个不同的服务器,但困难很大。

    首先检查是否在 IDE 中对 Java DB 进行了注册。许多情况下Java DB IDE 中被自动注册比如已经在 IDE 中注册了 Sun Java 系统应用程序服务器或者正在运行 JDK 6

确定是否在 IDE 中注册了 Java DB 的步骤:

l      打开 Tools 菜单查找 Java DB Database 菜单项。

    如果没有 Java DB 菜单项需要在 IDE 中手工注册 Java DB

IDE 中手工注册 Java DB 的步骤:

  1. 在系统上创建一个文件夹来保存数据库。
  2. 选择 Tools > Options
  3. Options 窗口中单击 Advanced Options 按钮。
  4. Advanced Options 窗口中展开 IDE Configuration > Server and External Tools Settings 节点。然后选择 Java DB Database 节点。
  5. Advanced Options 窗口的右侧单击省略符号 ( ) 按钮获取 Java DB Location并为数据库服务器设置路径例如C:/javadb/db
  6. Database Location 属性中键入在该步骤 1 中所创建文件夹的路径。
  7. 单击 Close

启动服务器并创建数据库

    IDE 注册了 Java BV 后,在主菜单中的 Tools 下会出现 Java DB Database 菜单项。该菜单项能够方便地实现数据库服务器的启动和停止,同时方便地创建一个新的数据库。

启动数据库服务器的步骤

l      选择 Tools > Java DB Database > Start Java DB Server

    如果为数据库设定位置,则会出现 Set Database Location 对话框。为数据库服务器输入一个位置,保存数据库。也可以在此创建一个新的文件夹。

    启动服务器后 Output 窗口中将打开 Java DB Database 处理选项卡并显示类似如下的消息

Apache 
   
   
    
    
     
     Derby
    
    
   
    Network Server - 
   
   
    
    10.2.1
   
   .7 - (453926) started and
   
   
            ready to accept connections on port 1527 at 2007-04-27 11:32:45.406 GMT
   
   

创建数据库

  1. 选择 Tools > Java DB Database > Create Java DB Database。打开 Create Java DB Database 对话框。
  2. Database Name 文本字段中键入 car_database并且将 User Name Password 都设置为 nbuser
  3. 单击 OK

连接数据库

    至此我们成功地启动了数据库服务器,并且创建了一个数据库。但是,我们还需要连接新数据库,才能开始使用它在 IDE 中工作。连接 car_database 数据库的步骤:

  1. 切换到 Runtime 窗口 (Ctrl + 5),展开 Databases 节点,查看新数据库。   

  1. 右键单击数据库连接节点(jdbc:derby://localhost:1527/car_database[nbuser on NBUSER]) 并选择 Connect

现在连接节点图标应该出现 ( ) 这表示连接成功。

  1. 右键单击连接节点的 Tables 子节点并选择 Execute Command
  2. 复制 car.sql 文件的内容并将它们粘贴到 Source Editor SQL Command 1 选项卡中。

这是 SQL 脚本该脚本将把有关汽车的数据移往数据库。

  1. 单击 Source Editor 工具栏中的 Run SQL 按钮 ( )运行脚本。

创建应用程序

  1. 选择 Project > New Project
  2. 在向导的第一个面板中展开 General 种类并选择 Java Desktop Application 模板。单击 Next

Java Desktop Application 模板提供许多可视化应用程序的基本元素包括基本菜单项目和命令。

  1. 在向导的 Name and Location 页面中执行以下操作
    1. Project Name 字段中键入 CarsApp该字段的值设定 Projects 窗口中项目计划的显示名称。
    2. 可选择编辑 Project Location 字段,以改变项目元数据的位置。
    3. Choose Application shell 字段中选择 Database Application
    4. 单击 Finish
  2. 在向导的 Master Table 页面中 CAR 数据库选择数据库连接。数据库的清单看上去应该如下所示
    jdbc:derby://localhost:1527/cars[nbuser on NBUSER]
  3. 为数据库填写密码 (nbuser) 并选择 Remember Password During This Session 复选框。

在建立了与数据库的连接之后Database Table 字段应该显示 CAR并且 Columns to 列表应该包含 CAR 数据库 10 列的名称。现在我们将在应用程序中仅使用其中的五个。

  1. 选择下面五个列名称 SUN_ROOF 开始 MODERNNESS 结束),并单击 < 按钮。单击 Next
  2. Detail Options 面板上单击 Finish

然后向导生成一个基本用户界面,其中一个表与一个数据库相连接。

运行生成的应用程序

    这时便拥有了一个带图形用户界面(GUI)的基本运行应用程序,该图形用户界面具有以下特性

l      查看和修改 CAR 数据库五个列中数值的能力

l      基本菜单项目。

l      其会话期间窗口状态的维持。当关闭应用程序时记住窗口位置和大小。所以当重新打开应用程序时,窗口将在其关闭的位置打开。

l      一个 About 对话框可以方便地对其进行自定义。

l      包含在用户界面中标签的 .properties 文件。使用 .properties 文件是维持从文本中分离代码的逻辑的好办法该文本出现在应用程序的用户界面中。这种分离可以使程序本地化变得更加方便。

遵照以下这些步骤,查看已经构建于应用程序中的一些功能:

  1. 右键单击项目节点然后选择 Run Project

几秒钟后应用程序启动出现一个名为 Database Application Example 的窗口。该窗口包含一个表格和几个能够编辑 CARS 数据库的控件。

  1. 选择表格中的第一个记录对于 Acura
  2. 选择 Price 文本字段并使用 46999 替换现有数值然后按 Enter

表格中的数值应该被更新。

同样可以更新表格中的其他任何数值。

  1. 单击 New创建一个新的记录。然后在各个字段中 (MakeModelPriceBody StyleColor) 填写数值。例如,可以填写: TrabandClassic1000wagonblue单击 Save 将输入保存在数据库中。
  2. 单击 Database Application Example 标题栏然后将应用程序拖至屏幕上的不同位置。
  3. 单击 Database Application Example 窗口的左边框然后拖向左侧以增加窗口的尺寸。
  4. Database Application Example 菜单栏中选择 File Exit
  5. IDE 右键单击项目节点然后选择 Run Project

Database Application Example 窗口将在上次应用程序关闭时的位置以相同的大小打开。

核查生成的应用程序的部件

    可视化 Jtable 组件和数据库之间的连接使用以下机制的组合进行管理所有这些机制都是由 IDE 生成的

l      Car.java 实体类该实体类用于对 CAR 数据库表格的数据进行读和写操作。实体类是一种特殊类型的类,它们使您能够通过 java 代码与数据库进行交互。实体类使用 java 注释,将类字段映射到数据库列。 .

l      META-INF/persistence.xml 文件该文件定义了数据库和实体类之间的连接。该文件也叫做持久单元。

l      使用 beans binding将实体类的属性与 JTable 组件的属性连接。Beans binding 是一种基于 JSR 295 的新技术该技术将可能被包含在将来 java SE 发布中。

l      entityManagerquery 以及 list 对象这些对象在 CarsAppFrame 类中定义并在 Other Components 节点下的 Inspector 窗口中列出。

m       实体管理器对象用于在定义的持久单位范围内找回和提交数据。

m       查询对象定义如何从实体管理器中找回特定的数据集合。可以通过在 Inspectory 窗口中选择查询对象,并在属性表中更改 query 属性的方式,改变查询对象的工作方式。query 属性使用 JPA 查询语言。

m       列表对象是一种可观察集合该集合持有来自查询的数据。可观察集合是集合的特殊种类,在其上可设置一个监听器,以发现对集合做出更改的时间。

    使用 Inspector 窗口和属性表可以按照以下步骤了解 Jtable 是如何与数据绑定的

  1. Inspector 窗口中选择 [JFrame] > innerPane [JPanel] > masterScrollPane [JScrollPane] > masterTable (JTable) 节点。然后单击 Properties 窗口中的 Binding 选项卡。
  2. 观察元素属性确认它已与列表绑定。
  3. 单击省略号 [...] 按钮打开 Bind masterTable 元素定制器在此可以进一步定制表和数据库之间的绑定。例如,可以看到,定制器能够实现对指定表列的绑定。

    除了属性表中的 Binding 种类外还可以使用上下文菜单中的 Bind 菜单。

添加更多控件

    针对一些我们起初排除的属性,我们现在向表单添加控件。我们不使用表格我们将添加 Jslider 组件用于 tire size modernness 属性) JCheckbox 组件用于 sun roof spoiler 属性)

按照以下步骤添加额外的组件:

  1. 单击 Palette 窗口中的 JSlider 按钮添加第一个滑动条然后单击位于 New 按钮上方的表单。在单击表单插入滑动条之前应确保未出现水平槽形引导线。这些线条表示滑动条将被插在与字段或者按钮相同的行上。参照下图,了解应该将滑动条放在表单的什么位置。

注意:如果将组件放到了不希望放置的位置,并由此造成了布局上的改变,最简单的恢复办法是不保存更改关闭表单。然后重新打开表单,再试一次。

  1. 如有必要,向左展开滑动条,将它与文本字段组件的左侧对齐。
  2. 向右展开滑动条,跨过整个表单的宽度。
  3. 在滑动条的左侧添加一个标签,并将它的文本设为 Tire Size(单击标签,使其处于可编辑状态。)
  4. 在第一个滑动条的下方添加另一个滑动条,必要时调整它的宽度并对齐。
  5. Tire Size 标签下添加另一个标签并将它的文本设为 Modernness
  6. 在滑动条的下方添加两个复选框。将它们的文本设为 Spoiler Sun Roof

将控件与表格中的值绑定

    我们现在将使用 beans binding 特性将表格单元中显示的值与已添加控件的状态联系起来。这样可以实现使用滑动条和复选框改变表格中的单元值。

将滑动条和复选框与其相应的表格元素绑定的步骤:

  1. 在表单中,右键单击第一个滑动条,并选择 Bind > value
  2. Binding 对话框的 Binding Source 下拉列表中选择 masterTable
  3. Binding Expression 下拉列表中选择 Element > tiresize
  4. 在表单中右键单击第二个滑动条并选择 Bind > value
  5. Binding 对话框的 Binding Source 下拉列表中选择 masterTable
  6. Binding Expression 下拉列表中选择 selectedElement > tiresize

"

  1. 在表单中右键单击第一个复选框并选择 Bind > selected
  2. Binding 对话框的 Binding Source 下拉列表中选择 masterTable
  3. Binding Expression 下拉列表中选择 selectedElement > spoiler
  4. 在表单中右键单击第二个复选框并选择 Bind > selected
  5. Binding 对话框的 Binding Source 下拉列表中选择 masterTable
  6. Binding Expression 下拉列表中选择 selectedRow > sunRoof
  7. 选择 Run > Run Main Project 执行应用程序。可以使用运行的应用程序中的滑动条和复选框更改所选记录的值。

"

建立一个自定义组件

    为了以更加图形化的方式演示运行中的 bean 绑定,我们将添加一个可以预览所选车型喷涂效果的自定义组件。我们将把该组件的属性与相应的表格元素进行绑定。再次运行应用程序的时候,车型预览将随所选行的变化和各种字段值的变化而改变。

使 CarPreview 组件能够应用于 CarsApp 项目的步骤

  1. 如果您尚未这样做请下载CarPreview.zip 文件。
  2. 使用标准 zip 工具解压 zip 文件。
  3. 选择 Project > Open Project然后找到 zip 解压后的文件并选择 CarPreview 项目。
  4. 单击 Open Project Folder

该项目在 IDE 中打开。

  1. 右键单击 CarPreview 节点并选择 Build Project

这样便对项目中的文件进行了汇编,以便将 CarPreview 类作为一个 bean 来使用,能够在表单上直接进行拖放操作。

该组件被写成 JavaBeans 组件,所以,可以将其添加至 Palette,这样可以方便地向多个应用程序添加组件。但是现在,我们只是简单地将组件直接从 Projects 窗口拖进应用程序。

向应用程序添加 CarPreview 组件的步骤

  1. Projects 窗口中展开 Car Preview > Source Packages > carpreview > nodes
  2. CarPreview.java 类拖向表单。要将其插入到菜单的下方,请将其放置在表上,与其它控件的左侧对齐,并且与工具栏的底部对齐,如下图所示。

  1. 在整个表单上,沿水平方向重新设定预览组件。
  2. 采用将滑动条和复选框与 JTable 中元素进行绑定的相同方式 CarPreview 组件的所有绑定属性与 masterTable 相应的 selectedElement 属性进行绑定。使用 Bind 弹出菜单或者属性表中的 Binding 选项卡。
  3. 重新运行 CarApp 应用程序。

在运行中的应用程序中可以发现,在选择表格中不同的行、修改表格中的值、移动滑动条以及选择和不选复选框时,CarPreview 组件会随之发生变化。

查看原文:http://www.netbeans.org/kb/60/ide-gui-db-prev.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很高兴听您有此想法!以下是我整理的一个简单说明,希望对您有所帮助。 首先,您需要考虑的一些关键功能,如: - 学生列表管理:允许用户浏览、编辑和删除学生记录 - 成绩管理:允许用户输入和查看学生的分数 - 数据库操作:保存学生记录和成绩 接下来,您可以按照以下步骤完成学生管理系统: 1. 设计数据模型,定义有哪些类和属性。 例如,您可以定义一个`Student`类,其中包含学生的姓名、性别、生日、学号等属性;也可以定义一个`Score`类,其中包含学生的成绩、考试科目等属性。 2. 设计GUI界面,包括菜单栏、工具栏、数据表格等。 例如,您可以设计一个界面,其中包含菜单栏、工具栏、数据表格等组件,用户可以在其中浏览、编辑和删除学生记录和成绩。 3. 实现业务逻辑和数据库操作。 以学生列表管理为例,您可以完成以下操作: - 加载学生列表:从数据库中读取学生信息,并显示在数据表格中; - 添加学生:用户点击“添加”按钮,弹出对话框,输入学生信息后,将新的学生信息保存到数据库中,并刷新数据表格; - 编辑学生:用户在数据表格中选中一条学生记录,点击“编辑”按钮,弹出对话框,允许用户修改学生信息,在完成修改后,将学生信息更新到数据库中,并刷新数据表格; - 删除学生:用户在数据表格中选中一条学生记录,点击“删除”按钮,弹出确认对话框,提示用户是否确认删除,如果用户确认删除,则将学生信息从数据库中删除,并刷新数据表格。 同样,您还可以实现其他功能,如成绩管理、数据检索和报表生成等。 总之,Java是一种功能强大的语言,它可以帮助您快速构建可靠的应用程序。如果您需要更具体的帮助,请参考Java GUI编程和Java数据库编程等方面的教程和资料。祝您的project顺利完成!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值