使用 JDeveloper 进行数据库开发

目的

本教程演示了如何使用 JDeveloper 进行脱机数据库开发。您将学习构建现有数据库表的模型,脱机创建一个新视图以及将脱机将更改应用到数据库。还将学习如何在数据库中创建和测试 PL/SQL 对象。

所需时间

大约 20 分钟。

主题

本教程包括下列主题:

 概述
 情景
 前提条件
 创建数据库连接
 创建模型项目
 构建脱机数据库对象模型
 在数据库中创建 PL/SQL 对象
 总结

查看屏幕截图

 将鼠标置于此图标上 可以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)

注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。可以通过单击各个屏幕截图来将其隐藏。

概述

本教程使用 JDeveloper 的数据库特性来:

 构建现有表的模型
 在脱机数据库模型中进行更改
 脱机创建一个新视图
 将更改应用到数据库中
 在数据库中创建和测试 PL/SQL 对象

返回主题列表

情景

您被委派了一项数据库更新任务,要求对 Human Resources 模式作一些小更改,创建一个新数据库视图。同时还要求在数据库中创建一些 PL/SQL 对象并对它们进行测试。

返回主题列表

前提条件

开始本教程之前,您应该:

1.

可以访问或已经安装了 Oracle 示例模式。

该 OBE 使用 Oracle 数据库 10g 附带的 HR 模式。可以在线获取有关在 JDeveloper 中安装 HR 模式并创建到其的连接的指导:

http://www.oracle.com/technology/obe/obe1013jdev/common/OBEConnection.htm

2.

可以访问或已经安装了 Oracle JDeveloper (10.1.3.1.0)。

3.

已通过双击 <jdev_home>\jdeveloper.exe 启动了 JDeveloper。

如果您收到一条消息,询问您是否想从一个早期版本进行移植,单击 No

关闭 Tip of the Day 窗口。

4.

现在应显示 JDeveloper IDE。

返回主题列表

创建数据库连接

如果您尚未创建 JDBC 连接,本主题说明了创建到 HR 模式的连接的步骤。以下是创建该连接所需的详细信息:

Connection Name:hrconn

UserName:hr

Password:hr

Deploy Password:checked

Driver:thin

Host Name:localhost

JDBC Port: 1521

SID:ORCL

要在 JDeveloper 中定义连接,执行以下步骤:

1.

单击 Connections 选项卡。如果未显示 Connection Navigator,则选择 View > Connection Navigator

2.

右键单击 Database 节点,从上下文菜单中选择 New Database Connection

3.

如果显示了 Create Database Connection 向导的 Welcome 页面,则单击 Next

在向导的第 1 步中,输入 hrconn 作为 Connection Name,然后单击 Next

4.

在向导的第 2 步 Authentication 页面中:

 UsernamePassword 域中,键入上面给出的用户名和口令。
 选中 Deploy Password 复选框。

单击 Next



5.

在向导的第 3 步 Connection 页面中:

Host nameJDBC PortSID 域中,分别按如上所示填充。单击 Next


6.

在第 4 步中,检查是否使用您提供的信息成功建立了数据库连接。单击 Test Connection 按钮。

如果数据库可用且连接的详细信息正确,则您将在 Status 窗口中看到 Success!。

如果发生错误,则验证设置是否正确,单击 Back 进行任何必要的修改,然后重新测试连接。如果仍无法连接,则可能是数据库有问题或没有运行。

7.

单击 Finish。该连接现在应出现在 Connection Navigator 中的 Database 节点下。展开该连接及其节点,查看该模式的数据库对象。

返回主题列表

创建模型项目

在 JDeveloper 中工作时,可以在应用程序中按项目组织您的工作。JDeveloper 提供了一系列预定义的模板,利用它们可以创建应用程序和配置用于开发不同应用程序的项目。
模板提供了 JDeveloper 支持的基本技术。您可以通过选择最适合您需要的模板,然后对该模板进行配置添加您要使用的任何其他技术来创建工作环境。New Gallery 中可供您使用的选项或用于某些上下文菜单中操作的选项取决于您为该应用程序选择的模板。

本主题将指导您使用 Web 应用程序模板创建一个应用程序和项目,您需要修改该模板以 使用 JDeveloper 的数据库功能。

1.

在 Applications Navigator 中,右键单击 Applications 并从上下文菜单中选择 New Application

2.

在 Create Application 对话框中,将 Application Name 从 Application1 更改为 DBModeling。请注意,Directory Name 自动进行了更改以匹配新的 Application Name。


3.

在选择应用程序模板之前,必须对它进行自定义以便可以使用 JDeveloper 的数据库功能。单击 Manage Templates 打开 Manage Application Templates 对话框。

注意可用的应用程序模板类型及其关联的技术。


4.

Web Application [JSP, Struts, ADF BC] 节点下,选择 Data Model

在 Available Technologies 列表中选择 Database,单击  将其移动到 Selected Technologies 列表中。

单击 OK


5.

注意,在 Create Application 对话框中,Application Template 现在已设置为 Web Application [JSP, Struts, ADF BC]。单击 OK


6.

这样就创建了 DBModeling 应用程序,它在 Applications Navigator 中显示为一个节点。

单击 Save All 保存您的工作。在学习本教程的剩余内容时,应定期保存您的工作。

返回主题列表

脱机构建数据库对象模型

除了使用联机数据库对象(这不在本教程介绍范围之内)以外,JDeveloper 还允许您脱机构建数据库对象模型并将更改反映到数据库中。

下面的主题将指导您创建一个空数据库图,并向该图中添加两个来自 HR 模式的表。
然后对表中的数据做一些小修改。并基于表中的数据创建视图。最后生成一个包含您用于您所做更改的 DDL 的 SQL 脚本。之后您可以运行该脚本来完成数据库更新。

 创建一个数据库图
 从数据库连接导入表
 在该图上编辑对象
 创建一个新视图
 生成用于更改的 DDL

返回主题列表

创建一个数据库图

1.

在 Applications Navigator 中,右键单击 Model 项目,然后从上下文菜单中选择 New

显示 New Gallery。

2.

在 Categories 列表中,如未展开 Database Tier,则先展开它,选择 Offline Database Objects。然后,从 Items 列表中选择 Database Diagram 并单击 OK


3.

在 Create Database Diagram 对话框中,将 Name 更改为 HRDiagram,然后单击 OK

这将打开一个新的数据库图。

4.

注意数据库图区右边的 Component Palette。Component Palette 提供可用于该数据库图的元素。如果看不到 Component Palette,则从 View 菜单中选择 Component Palette 来将其打开。

返回主题

返回主题列表

从数据库连接导入表

您现在有了一个空数据库图,可以通过将表从数据库连接拖到该图中将其导入。导入表将创建脱机表定义,在使用 DDL 在数据库中创建新表或修改表之前可以使用这些表定义。

1.

单击 Connections 选项卡查看 Connection Navigator,或选择 View | Connection Navigator

展开 DatabasehrconnHR 节点,查看此连接提供的所有数据库对象。

2.

展开 Tables 节点,选择 DEPARTMENTS,然后按住 [Ctrl] 键并选择 EMPLOYEES

DEPARTMENTSEMPLOYEES 表拖到该图上。


3.

在 Create From Database Object 对话框中,确保选中 Offline Database Objects,然后单击 OK

JDeveloper 连接到该数据库,根据您选择的表创建脱机表定义。此操作可能会造成短暂的延时。

创建了脱机表和外键后将把它们显示在该图上。

4.

检查图中的脱机表及其外键。您可能滚动才能查看完整的图。


返回主题

返回主题列表

在图上编辑对象

使用 JDeveloper 的建模工具,您可以直接在图上编辑脱机表(称作就地编辑),或通过调用 Properties 对话框进行编辑。您可以更改表名、创建新列、编辑现有列以及编辑表约束。

以下步骤指导您使用就地编辑修改检查约束,使用 Edit Offline Table 对话框更改列定义。

1.

如果表图大小不便于操作,则单击窗口顶端的 Zoom InZoom Out

在图中的 Employees 表的第 3 个单元格中,选择检查约束 <<Check>> EMP_SALARY_MIN:salary > 0,然再单击一次,这样您就可编辑该行(图内)了。

将其更改为 EMP_SALARY_MIN:salary > 10

[Enter] 或将焦点移出该表时更改生效。

2.

现在,将就地编辑与使用 Edit Offline Tables 对话框编辑进行比较。

双击图中的 Employees 表打开 Edit Offline Table 对话框,或右键单击图中或 Applications Navigator 中的该表 ,从上下文菜单中选择 Properties 打开该对话框。


3.

在 Edit Offline Tables 对话框中,选择 Column Information,然后在 Columns 列表中选择 EMAIL。在 Column Properties 部分中,将 Size 更改为 30,然后单击 OK


4.

注意,图中的表已经完成了更新,加入了更改。


单击 Save All 保存您的更改。

返回主题

返回主题列表

创建新视图

在本主题中,您要创建一个新的数据库视图,其中包括了员工的姓和员工所工作部门的名称。

1.

在 Applications Navigator 中,右键单击 Model 项目,然后从上下文菜单中选择 New

2.

在 New Gallery 的 Categories 列表中展开 Database Tier,然后选择 Offline Database Objects。在 Items 列表中,选择 View 并单击 OK


3.

如果显示了 Create Offline View 向导的 Welcome 页面,则单击 Next

在该向导的 View Information 页面上,输入名称 EmpDept ,然后单击 Next


4.

注意,创建视图有两种方法。这里您将通过从列表中选择对象而不是在 SQL 查询中输入对象的声明式方法创建视图。

在该向导的 Choose View creation method 页面上,选择 Declarative 并单击 Next


5.

在该向导的 Quick-pick objects 页面上,展开 Available 列表中的 EMPLOYEES 节点,然后展开 EMP_DEPT_FK,接着在其下方展开 DEPARTMENTS

选择 EMPLOYEES 节点下的 LAST_NAME。按住 [Ctrl] 键并选择 DEPARTMENTS 节点(EMP_DEPT_FK 的子节点)下的 DEPARTMENT_NAME

单击  将 LAST_NAME 和 DEPARTMENT_NAME 移动到 Selected 列表。

单击 Next,检查查询,然后单击 Finish 创建脱机视图。


6.

在 Applications Navigator 中,展开 Model 项目,然后展开 Offline Database SourcesHR。选择 EMPDEPT 视图并将其拖到该图上的空白位置。


7.

检查图中的视图。

单击 Save All 保存您的更改。

返回主题

返回主题列表

生成用于更改的 DDL

在前几步中,您学习了如何从数据库连接导入表,修改其中的数据,并基于它们创建新视图。
在本主题中,您要创建一个包含用于更改的 DDL 的 SQL 文件,之后您可以使用它来更新数据库。

通过 JDeveloper,您还可以直接更改数据库,或将更改反映到数据库。

1.

右键单击该图,从上下文菜单中选择 Generate > Data Definition Language for Diagram。这将调用 Generate SQL from Offline Database Objects 向导。

或者,您可以在 Applications Navigator 中选择表和视图,然后从上下文菜单中选择 Generate or Reconcile Objects

2.

如果显示 Generate SQL from Offline Database Objects 向导的 Welcome 页面,则查看信息并单击 Next

在 Select Objects 页面上,检查 DepartmentsEmployees 表以及 EmpDept 视图是否位于 Selected 列表中,然后单击 Next


3.

在 Generate Options 页面上,确保选中了 ALTER Objects 选项。

选择 Manual Reconcile,然后单击 Next

4.

在该向导的 SQL Script Options 页面上,选择 Generate SQL ScriptsGenerate SQL*Plus extensions

将 SQL File Name 更改为 dbmodeling.sql ,然后单击 Next

5.

在该向导的 Database Options 页面上,单击 Next,然后单击 Finish 页面上的 Finish。

显示 Reconcile 对话框。Offline Database 列表包含从脱机数据库中生成的计划更改,而 Online Database 列表则显示联机数据库定义。通过该对话框您可以接受或拒绝计划更改。因为前面在 Offline Database 列表中选择了所有更改,所以在这里选择  接受所选更改或选择  接受所有更改,都将把所有更改加入所创建的脚本中。

您仅进行了两项更改,而且都是针对 EMPLOYEES 表的:一个针对 EMAIL 列,另一个针对 EMP_SALARY_MIN 校验约束。

在 Offline Database 列表中,展开 EMPLOYEES 节点,然后展开 ColumnsConstraints 节点。

要创建只有列更改而无约束更改的脚本,仅选择 EMAIL 列更改。
要生成新视图的 DDL,选择 EMPDEPT,然后单击  接受所选更改,将它们加入 Online Database 列表。

6.

单击 OK 生成 DDL 脚本。生成脚本并在编辑器中打开。

尽管您不会在本教程中执行此操作,但可以在 SQL*Plus 中运行此脚本以将更改应用于数据库。

返回主题

返回主题列表

在数据库中创建 PL/SQL 对象

通过 JDeveloper,您可以创建、编辑、测试和调试数据库中存储的 PL/SQL,其中包括对象类型、程序包、过程、函数和触发器。执行此操作的一个方法就是在 JDeveloper 中创建一个文件形式的 SQL 脚本,然后对数据库运行该脚本。另一个方法是在数据库中直接创建一个 PL/SQL 对象。

在下面的主题中,您要创建一个对象类型 emp_rec,它定义员工记录的布局。然后创建一个含 get_emp 函数的程序包,该函数返回一个由 emp_rec 定义的员工记录。最后创建程序包主体来执行查询并填充 emp_rec。

 运行 SQL 脚本创建一个对象类型
 直接创建 PL/SQL 程序包
 测试 PL/SQL 函数

返回主题列表

运行 SQL 脚本创建一个对象类型

1.

要创建 SQL 脚本,在 Applications Navigator 中右键单击 Model 项目,然后选择 New 打开 New Gallery。

2.

在 Categories 列表中,展开 Database Tier 并选择 Database Files,然后在 Items 列表中选择 SQL File。单击 OK


3.

在 Create SQL File 对话框中,将 File Name 更改为 emp_rec.sql ,然后单击 OK

新的空文件在代码编辑器中打开。


4.

复制下面的代码并将其粘贴到代码编辑器中:

REM
REM Create object EMP_REC
REM

CREATE or REPLACE type EMP_REC as object
(
employee_id number(6),
last_name varchar2(25),
job_id varchar2(10),
manager_id number(6),
hire_date date,
salary number(8,2),
commission_pct number(2,2),
department_id number(4)
);
/
show errors;

单击 Save All 保存您的更改。


5.

在编辑器中右键单击 emp_rec.sql ,然后选择 Run in SQL*Plus > hrconn。如果出现提示,则输入口令 hr。对数据库中的 Human Resources 模式运行此 SQL 文件将创建一个名为 EMP_REC 的对象类型。

注意:如果这是第一次从此计算机上的 JDeveloper 中运行 SQL*Plus,则会要求您指定 SQL*Plus 可执行文件的位置。单击 Browse 浏览到 sqlplusw.exe 的位置。

Oracle SQL*Plus 窗口打开并运行该脚本。您将看到以下消息:

Type created.

No errors.

键入 exit 关闭 SQL*Plus 窗口。


6.

在 Connection Navigator 中,展开 Database 节点。依次展开连接 hrconnHRTypes,找到新对象类型 EMP_REC

返回主题

返回主题列表

直接创建 PL/SQL 程序包

您刚才学习了通过先创建脚本,然后针对数据库运行脚本来创建 PL/SQL 对象。在本主题中,您要学习直接创建 PL/SQL 程序包 EMP_FETCHER。

1.

在 Connection Navigator 中,展开 Database 节点、 hrconn 节点和 HR 节点。右键单击 Packages 节点,从上下文菜单中选择 New PL/SQL Package

2.

在 Create PL/SQL Package 对话框中,将 Object Name 设置为 EMP_FETCHER ,然后单击 OK

EMP_FETCHER 程序包在代码编辑器中打开。

3.

在 EMP_FETCHER 程序包的代码编辑器中,在已有的两行代码间输入以下代码,创建 get_emp 函数:

FUNCTION get_emp(emp_no IN NUMBER) RETURN emp_rec;

保存该程序包。

4.

在 Connection Navigator 中,右键单击 EMP_FETCHER 程序包,然后从上下文菜单中选择 New Package Body

该程序包主体在代码编辑器中打开。

5.

在 EMP_FETCHER 程序包主体的代码编辑器中输入以下代码,执行查询并填充员工记录:

PACKAGE BODY "EMP_FETCHER" AS

FUNCTION get_emp(emp_no IN NUMBER) RETURN emp_rec;

emp_found employees%rowtype;
emp_rtn emp_rec;

BEGIN

SELECT *
INTO emp_found
FROM employees
WHERE employees.employee_id=emp_no;
emp_rtn := emp_rec
(

emp_found.employee_id,
emp_found.last_name,
emp_found.job_id,
emp_found.manager_id,
emp_found.hire_date,
emp_found.salary,
emp_found.commission_pct,
emp_found.department_id

);

RETURN emp_rtn;

END;

END;

单击 Save 编译程序包主体。

返回主题

返回主题列表

测试 PL/SQL 函数

1.

在 Connection Navigator 中,右键单击 EMP_FETCHER 程序包主体,然后从上下文菜单中选择 Run

2.

在 Run PL/SQL 对话框中,完成如下更改,以仅显示始员工号为 200 的员工的姓:


EMP_NO := NULL;
代码行更改为
EMP_NO := 200;

 取消
--DBMS_OUTPUT.PUT_LINE('v_Return = ' || v_Return);
的注释,更改为
DBMS_OUTPUT.PUT_LINE('v_Return = ' || v_Return .last_name);

3.

单击 OK。日志窗口显示 EMP_FETCHER 程序包中 get_emp() 函数的输出。

返回主题

返回主题列表

总结

在本教程中,您使用了 JDeveloper 的某些数据库特性。您在数据库图上脱机构建了数据库表的模型,并创建了一个新的脱机视图。然后,您创建了一个 SQL 脚本,用以将这些更改反映到数据库。您还通过运行 SQL 脚本在数据库中创建了一个对象类型并直接创建了一个 PL/SQL 程序包,并在 JDeveloper 中对它们进行了测试。

您已学会了如何

 在数据库图中创建脱机数据库表的模型
 通过数据库图在数据库中更新数据
 在数据库中创建 PL/SQL 对象

返回主题列表

 将鼠标置于该图标上可以隐藏所有的屏幕截图。

Left Curve
热门下载
Right Curve
Left Curve
更多融合中间件下载
Right Curve