版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、生成 Java 桌面数据库应用程序本教程介绍如何创建可用于访问和更新数据库的桌面 Java 应用程序。本教程将利用 NetBeans IDE 中对以下技术的支持:· Java 持久性 API (JPA) - 帮助使用 Java 代码与数据库进行交互。 · Bean 绑定 (JSR-295) - 为不同的 JavaBeans 组件提供一种彼此同步属性值的方法。例如,可以使用 Bean 绑定来使 JTable 可视组件中单元格的值与实体类中的字段值保持同步。(而实体类又表示数据库表。) · Swing 应用程序框架 (JSR-296) - 为快速创建桌面应用程序提供了
2、一些有用的模块。 我们将创建一个数据库 CRUD(创建、读取、更新、删除)应用程序,其中包含一个用于对数据进行可视化(汽车设计预览)的定制组件。本教程大量采用基于早期内部开发版本的 IDE 的截屏视频。某些用户界面从演示制作完成后就发生了变化,因此您可能会注意到本教程与演示之间存在一些差异。可以立即查看演示(大约 9 分钟)或下载演示的 zip 文件。预计时间:45 分钟目录· 设置数据库· 启动服务器并创建数据库· 连接数据库· 创建应用程序· 运行生成的应用程序· 检查应用程序的已生成部分· 添加其他控件· 将
3、控件与表中的值绑定· 设置定制组件· 生成并部署应用程序· 后续步骤要学完本教程,您需要具备下表所列的软件和资源。软件或资源要求的版本NetBeans IDE版本 6.5Java Development Kit (JDK)版本 6 或版本 5Java DB 数据库服务器(Java DB 包含在 JDK 6 中)汽车数据库 SQL 脚本CarPreview 项目设置数据库开始在 IDE 中创建桌面 CRUD(创建、读取、更新、删除)应用程序之前,应已将 IDE 连接到应用程序要使用的数据库。提前设置此连接,您便可以利用 IDE 中的自动将数据库绑定到应用程序这一功能
4、。在本教程中,我们提供了使用 Java DB 数据库的说明,因为存在一个便于从 IDE 启动和停止 Java DB 数据库服务器的接口。但是,可以毫不费力地使用其他的数据库服务器。 首先,验证是否在 IDE 中注册了 Java DB。在很多情况下,Java DB 是自动在 IDE 中注册的(例如当您在 IDE 中注册 GlassFish 应用程序服务器时,或者在 JDK 6 中运行时)。如果 Java DB 未在 IDE 中注册,则手动将它注册。要验证 Java DB 是否已在 IDE 中注册,请执行以下操作:1. 打开“服务”窗口。 2. 右键单击“数据库”> "Java D
5、B" 节点,然后选择“属性”。 如果 Java DB 已注册,则“Java 数据库安装”和“数据库位置”这两个字段均已填写。如果 Java DB 未注册,则填写以下两个字段:o Java 数据库安装。输入指向数据库服务器的路径。 o 数据库位置。输入希望存储数据库的文件夹。 3. 单击“确定”。 启动服务器并创建数据库在向 IDE 注册 Java DB 之后,可以轻松地启动和停止数据库服务器,以及创建新数据库。 要在 IDE 中启动数据库服务器,请执行以下操作:· 在“服务”窗口中,右键单击“数据库”> "Java DB",然后
6、选择“启动服务器”。 如果还没有为数据库设定位置,则会出现“设置数据库位置”对话框。输入数据库服务器用于存储数据库的位置。如果愿意,可以在该位置创建新文件夹。服务器启动之后,“Java DB 数据库进程”标签会在“输出”窗口中打开,并显示类似于以下内容的消息:Apache Derby Network Server - .0 - (485682) started and ready to accept connections on port 1527 at 2007-09-05 10:26:25.424 GMT创建数据库,请执行以下操作:1. 在“服务”窗口中,右键单击“数据库”> &qu
7、ot;Java DB",然后选择“创建数据库”。 2. 对于“数据库名称”文本字段,键入 car_database。还要将“用户名”和“口令”设置为 nbuser。 3. 单击“确定”。 连接数据库到目前为止,我们已成功启动了数据库服务器,并创建了一个数据库。但是,我们还需要连接新数据库,然后才能开始在 IDE 中使用该数据库。要连接 car_database 数据库,请执行以下操作:1. 切换到“服务”窗口 (Ctrl+5),然后展开“数据库”节点查看新数据库。 2. 右键单击“数据库连接”节点 (jdbc:derby:/localhost:1527/car_databa
8、seNBUSER 上的 nbuser),选择“连接”。 现在,连接节点图标应该完全显示 (),这表示连接已成功。3. 展开连接节点,右键单击其“表”子节点,然后选择“执行命令”。 4. 复制 car.sql 文件的内容,并将其粘贴到源代码编辑器的“SQL 命令 1”标签中。 这是 SQL 脚本,该脚本将使用关于汽车的数据填充数据库。5. 在源代码编辑器工具栏中,单击“运行 SQL”按钮()以运行该脚本。 创建应用程序1. 选择“文件”>“新建项目”。 2. 在向导的第一个面板中,展开 "Java" 类别,并选择“Java 桌面应用程序”模板。单击“下一步”。 “Jav
9、a 桌面应用程序”模板提供了可视应用程序的许多基本项,包括基本菜单项和命令。3. 在向导的“名称和位置”页中,执行以下操作: 1. 在“项目名称”字段中,键入 CarsApp。此字段的值会为“项目”窗口中的项目设置显示名称。 2. 选中“设置为主项目”复选框。 3. (可选)编辑“项目位置”字段来更改项目 meta 数据的位置。 4. (可选)选中“使用专用文件夹存储库”复选框,并指定库文件夹的位置。有关此选项的详细信息,请参见共享项目库。 5. 在“选择应用程序 Shell”字段中,选择“数据库应用程序”。 6. 单击“下一步”。 4. 在向导的“主表”页中,选择 CAR 数据库的数据库连接
10、。数据库的列表应该类似于以下内容:jdbc:derby:/localhost:1527/car_databaseNBUSER 上的 nbuser5. 填写数据库的口令 (nbuser),并选中“在此会话期间记住口令”复选框。 在建立与数据库的连接后,“数据库表”字段应该显示 CAR,“要包含的列”列表应该包含 CAR 数据库的 10 个列的名称。目前,我们将在应用程序中只使用其中的 5 个列名称。6. 选择后五个列名称(以 SUN_ROOF 开头,以 MODERNNESS 结尾),然后单击 < 按钮将它们移到左列中。单击“下一步”。 7. 在“详细信息选项”面板中,单击“完成”。 然后,
11、向导将生成一个带有表和数据库连接的基本用户界面。IDE 生成项目和代码可能需要几秒钟的时间。运行生成的应用程序此时,已有了一个正在运行的基本应用程序,其中包含的图形用户界面 (GUI) 具有以下功能:· 查看和修改 CAR 数据库中五个列值的功能。 · 基本菜单项。 · 会话间窗口状态的持久性。在关闭应用程序时,系统将记住窗口的位置和大小。这样在重新打开应用程序时,窗口会在关闭它时所在的同一个位置打开。 · “关于”对话框,可以轻松地对它进行定制。 · .properties 文件,其中包含用户界面中的标签。使用 .properties 文件是
12、使代码逻辑与出现在应用程序用户界面中的文本分离的好方法。此外,这样的分离有利于简化程序的本地化。 要查看已内置到应用程序中的一些功能,请执行以下操作:1. 右键单击项目节点,然后选择“运行”。 几秒钟后,应用程序将启动并显示一个名为 "Database Application Example" 的窗口。此窗口包含一张表和若干可用于编辑 CAR 数据库的控件。2. 选择表中的第一条记录(关于 Acura)。 3. 选择 "Price" 文本字段,并将现有值替换为 46999。然后按 Enter 键。 此时表中应显示更新后的值。(但是,在单击 "S
13、ave" 前,该值不会反映到数据库中。)同样地,可以更新表中的其他任何值。4. 单击 "New" 创建一条新记录。然后填写每个字段 (Make, Model, Price, Body Style, Color) 的值。例如,可以填写 Trabant、Classic、1000、wagon 和 blue。单击 "Save" 将该条目保存到数据库中。 5. 单击 "Database Application Example" 标题栏,并将应用程序拖到屏幕上的其他位置。 6. 单击 "Database Application
14、 Example" 窗口的左边框并将其向左拖动以增大窗口。 7. 在 "Database Application Example" 菜单栏中,选择 "File" > "Exit"。 8. 在 IDE 中,右键单击项目节点,然后选择“运行”项目。 此时,"Database Application Example" 窗口将打开,其大小和所在位置与关闭应用程序时相同。检查应用程序的已生成部分主表(JTable 组件)与数据库之间的连接是结合以下机制(所有这些机制都是由 IDE 生成的)进行处理的:
15、3; Car.java 实体类 - 用于在 CAR 数据库表中进行读写数据的操作。实体类是一种特殊的类,使用它可以通过 Java 代码与数据库交互。实体类使用 Java 标注将类字段映射到数据库列。 · META-INF/persistence.xml 文件 - 定义数据库与实体类之间的连接。此文件也称为持久性单元。 · 使用 Bean 绑定连接实体类的属性与 JTable 组件的属性。Bean 绑定是一项基于 JSR 295 的新技术,该技术可能会包含在将来的 Java SE 发行版中。 · entityManager、query 和 list 对象 - 它们在
16、 CarsView 类中定义,并且在“检查器”窗口中列出。 o entityManager(实体管理器)对象用于在已定义的持久性单元作用域内检索和提交数据。 o query(查询)对象定义如何从实体管理器检索数据收集。可以通过在“检查器”窗口中选择查询对象并更改属性表单中的 query 属性来更改查询对象的工作方式。query 属性使用 JPA 查询语言。 o list(列表)对象是保存查询到的数据的可观察集合。可观察的集合是一种特殊的集合,可以在其中放置侦听程序以查明对集合做出更改的时间。 使用“检查器”窗口和属性表单,可以执行以下步骤以了解如何将 JTable 绑定到数据:1. 在“检查器
17、”窗口中,选择 "mainPanelJPanel" > "masterScrollPane ScrollPane" > "masterTable JTable" 节点。然后在“属性”窗口中单击“绑定”标签。 2. 查看 "elements" 属性,确认其与列表已绑定。 3. 单击省略号 . 按钮打开“绑定 masterTable.elements”定制器,可以在其中进一步定制表与数据库之间的绑定。例如,可以查看定制器可用来指定要绑定哪些表列。 除了属性表单中的“绑定”类别外,还可以使用上下文菜单中的“绑
18、定”菜单。添加其他控件现在,我们要将最初排除的某些属性的控件添加到窗体中。除了使用表外,我们将添加 JSlider 组件(对于 tire size 和 modernness 属性)和 JCheckbox 组件(对于 sun roof 和 spoiler)。执行以下步骤来添加其他组件:1. 添加第一个滑块,方法是单击“组件面板”窗口中的“滑块”按钮,然后单击 "New" 按钮正上方的窗体。在单击该窗体以插入滑块之前,请确保未显示水平槽式基准线。这些基准线指示滑块将插入字段或按钮所在的同一行。请参见下图以了解应将滑块拖到窗体中的哪个位置。 注意:如果将组件放到了非预期的位置,并
19、因而导致不需要的布局更改,可以使用“撤消”命令来撤消更改。选择“编辑”>“撤消”,或按 Ctrl-Z 组合键。 2. 如有必要,向左拉伸滑块以将它与文本字段组件的左边对齐。 3. 向右拉伸滑块使其宽度相当于整个窗体的宽度。 4. 在滑块的左边添加一个标签,并将其文本设置为 Tire Size。(单击标签使其可编辑。) 5. 在第一个滑块下方添加另一个滑块,并根据需要调整其宽度和位置。 6. 在 "Tire Size" 标签下方添加另一个标签,并将其文本设置为 Modernness。 7. 在这两个滑块下添加两个复选框。将其文本分别设置为 Spoiler 和 Sun R
20、oof。(确保显示文本可编辑,方法是单击复选框一次,暂停,然后再次单击该复选框。还可以右键单击复选框,并选择“编辑文本”。) 窗体应该类似于如下所示的屏幕快照。将控件与表中的值绑定现在,我们将使用 Bean 绑定功能将表单元格中显示的值绑定到已添加的控件状态。这将使您能够通过使用滑块和复选框来更改表中单元格的值。要将滑块与其对应的表元素绑定,请执行以下操作:1. 在窗体中,右键单击 "Tire Size" 滑块,然后选择“绑定”> "value"。 2. 在“绑定”对话框的“绑定源”下拉列表中,选择 "masterTable"。
21、 3. 在“绑定表达式”下拉列表中,选择 "selectedElement" > "tiresize" 节点。 4. 在窗体中,右键单击 "Modernness" 滑块,然后选择“绑定”> "value"。 5. 在“绑定”对话框的“绑定源”下拉列表中,选择 "masterTable"。 6. 在“绑定表达式”下拉列表中,选择 "selectedElement" > "modernness"。 要将复选框与其对应的表元素绑定,请执行以下操
22、作:1. 在窗体中,右键单击 "Spoiler" 复选框,然后选择“绑定”> "selected"。 2. 在“绑定”对话框的“绑定源”下拉列表中,选择 "masterTable"。 3. 在“绑定表达式”下拉列表中,选择 "selectedElement" > "spoiler"。 4. 单击“确定”退出“绑定”对话框。 5. 在窗体中,右键单击 "Sun Roof" 复选框,然后选择“绑定”> "selected"。 6. 在“绑定”
23、对话框的“绑定源”下拉列表中,选择 "masterTable"。 7. 在“绑定表达式”下拉列表中,选择 "selectedRow" > "sunRoof"。 8. 单击“确定”。 现在,应该能够使用滑块和复选框来更改数据库条目。要验证滑块和复选框是否有效,请执行以下操作:1. 打开“服务”窗口。 2. 确保 IDE 已连接到数据库,方法是右键单击“数据库”> "jdbc:derby;/localhost:1527/car_database",并选择“连接”。 3. 右键单击“数据库”> &quo
24、t;jdbc:derby;/localhost:1527/car_database" >“表”> "CAR" 节点,并选择“查看数据”。 4. 查看第一条记录的 SUN_ROOF、SPOILER、TIRE_SIZE 和 MODERNNESS 值。 5. 选择“运行”>“运行主项目”来执行应用程序。 正在运行的应用程序应该类似于如下所示的屏幕快照。6. 在正运行的应用程序中,选择第一条记录。 7. 移动滑块并更改复选框选择。 8. 单击“保存”将更改保存到数据库中。 9. 在“服务”窗口中,再次使用“查看数据”命令。 数据库中的值应反映所做的更改。
25、设置定制组件为了运用更加图形化的方法来演示 Bean 绑定,让我们来添加将绘制所选汽车预览的定制组件。我们会将此组件的属性绑定到相应的表元素。然后,如果再次运行应用程序,则在更改选定的行并更改各种字段的值时,汽车预览也会被修改。要使 CarPreview 组件适用 CarsApp 项目,请执行以下操作:1. 如果尚未生成 CarPreview 组件,则下载 CarPreview.zip 文件。 2. 使用标准 zip 工具,提取 zip 文件的归档文件。 3. 选择“文件”>“打开项目”,并导航至 zip 文件的提取内容,然后选择 CarPreview 项目。 4. 单击“打开项目”。
26、此时该项目会在 IDE 中打开。5. 右键单击 "CarPreview" 节点,然后选择“清理并生成”。 该操作将编译该项目中的文件,以使您能够将 CarPreview 类用作可直接拖放到窗体中的 Bean。此组件是作为 JavaBeans 组件编写的,因此可以将其添加到组件面板中,这样便于将该组件添加到多个应用程序中。但是现在我们会直接将此组件从“项目”窗口拖动到应用程序中。要将 CarPreview 组件添加到应用程序中,请执行以下操作:1. 在“项目”窗口中,展开 "CarPreview" >“源包”> "carpreview
27、" 节点。 2. 将 CarPreview.java 类拖动到窗体中。要将该类插入菜单的正下方,请将其置于表的上方,与其他控件左对齐,并且折到菜单栏的底部,如下图所示。 3. 在整个窗体上水平调整预览组件大小。 4. 使用与将滑块和复选框绑定到 masterTable 组件中的元素相同的方法,将 CarPreview 组件的所有绑定属性绑定到 masterTable 的对应 selectedElement 属性。使用属性表单中的“绑定”弹出菜单或“绑定”标签。 5. 再次运行 CarApp 应用程序。 在正运行的应用程序中,会在选择表中不同的行、更改表中的值、移动滑块以及选中和取消选
28、中复选框时看到 CarPreview 组件的变化。下图显示了正在运行的最终应用程序。生成并部署应用程序如果您对应用程序正常工作的现状感到满意,可以准备在 IDE 外部署应用程序。在此部分中,将生成应用程序的可发布输出,并从 IDE 之外运行应用程序。生成应用程序IDE 中的主生成命令是“清理并生成”命令。“清理并生成”命令可以删除以前编译的类和其他生成工件,然后从头开始重新生成整个项目。注意:还有一个“生成”命令,该命令不会删除旧的生成工件,但此命令缺省情况下处于禁用状态。有关详细信息,请参见创建、导入和配置 Java 项目指南的“在保存时编译”部分。生成应用程序:· 选择“运行”&
29、gt;“清理并生成主项目”(Shift-F11)。 此时 Ant 生成脚本中的输出会显示在“输出”窗口中。如果未显示“输出”窗口,则可以通过选择“窗口”>“输出”>“输出”手动打开该窗口。清理并生成项目时,会出现以下情况:· 删除(“清理”)由以前的生成操作所生成的输出文件夹。(大多数情况下,这些文件夹为 build 和 dist 文件夹。) · 将 build 和 dist 文件夹添加到项目文件夹(以下称为 PROJECT_HOME 文件夹)中。 · 将所有源都编译成 .class 文件,并将这些文件放置在 PROJECT_HOME/build 文件夹中。 · 在 PROJECT_HOME/dist 文件夹中创建包含项目的 JAR 文件。 · 如果您已为该项目指定了任何库(除了 JDK 之外),则在 dist 文件夹中将创建
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论