在数据库中运行 Java
在数据库中运行 Java
本教程向您介绍如何在数据库中开发和运行 Java 程序。
大约 30 分钟
本教程包括下列主题:
将鼠标置于此图标上可以加载和查看本教程的所有屏幕截图。
(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)
注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。可以通过单击各个屏幕截图来将其隐藏。
存储过程允许最充分地利用关系数据库管理系统 (RDBMS) 的功能。存储过程简化了数据库编程、提升了性能、提供数据逻辑提的集中管理并且优化了网络传输。
将 Java 用于存储过程
Java 语言被设计为一种面向对象的编程语言,它具有内置的安全性机制和高效的垃圾收集系统。Java 还具有一组非常大的、丰富的标准库,从而可以更快、更低成本地开发应用程序。使用 Java 存储过程,开发人员能够在构建数据库应用程序时利用上述所有功能。
以下 OBE 基于 Kuassi Mensah 撰写的《使用 Java 和 Web 服务进行 Oracle 数据库编程》一书。本书的说明可从 http://db360.blogspot.com/2006/08/oracle-database-programming-using-java_01.html 处获得,代码示例可从 OTN 上的 http://download.oracle.com/technology/tech/java/jsp/pdf/Code_depot.zip 处获得。
返回主题列表
开始本教程之前,您应该:
| 1. |
安装 Oracle 数据库 11g
|
| 2. |
从 Sun 下载并安装 JDK 6.0。
|
| 4 |
将 java.zip 文件下载并解压缩到您的工作目录中(即 wkdir)
|
返回主题列表
通过以下步骤,使用默认的服务器端连接 (conn = DriverManager.getConnection("jdbc:default:connection:");) 在数据库中加载 TrimLoad.java,然后使用 TrimLobProc 过程执行该文件:
| 1. |
打开一个终端窗口,切换到解压缩文件的目录。执行以下命令:
loadjava -u hr/hr TrimLob.java

|
| 2. |
打开一个终端窗口,更改到解压缩文件的目录。执行以下命令:
drop table basic_lob_table;
create table basic_log_table (x varchar2 (30), b blob, c clob);
/

|
| 3. |
使用以下命令执行 TrimLobProc 过程:
set serveroutput on
call dbms_java.set_output(50000);
call TrimLobProc();

|
返回主题列表
由于 SQL 中的数据类型和 Java 编程语言中的数据类型不同,因此映射在一个使用 Java 类型的应用程序和一个使用 SQL 类型的数据库之间传输数据。使用以下步骤在不同的 SQL 类型和对应的 Java 类型之间进行映射:
返回主题列表
执行以下步骤,使用 ojmjava 或 PL/SQL 包装调用 Java 应用程序:
| 1. |
设置数据库表。执行 Workers.SQL 脚本:
@Workers
exit

|
| 2. |
使用 ojmjava 在数据库中调用 Java,这是一个交互式命令行实用程序,可以从客户端计算机在数据库中运行 Java 类。ojmjava 使用 JDBC 连接创建一个数据库会话,将一个字节数组从 ojmjava 客户端传递到执行用户类的 main 方法的 ojmjava 服务器。ojmjava 服务器然后将输出传递回客户端。从终端窗口中,执行以下命令:
ojvmjava -thin -user hr/hr
Java Workers 621 "Senior VP" 650000

|
| 3. |
使用 PL/SQL 包装在数据库中调用 Java。从终端窗口中,执行以下命令:
sqlplus hr/hr
create or replace procedure WorkerSp
(wid IN varchar2, wpos in varchar2, wsal in varchar2) as
language Java name
'Workers.main(java.lang.String[])';
call WorkerSp('621','Senior VP','650000');

|
返回主题列表
对象类型调用规范可以使用 STATIC 关键字发布一个对象类型的 public static 成员方法。然而,与任何其他 PL/SQL 打包的调用规范不同,使用 MEMBER 关键字对象类型调用规范还可以发布非静态实例。使用以下步骤创建并测试一个对象类型调用规范:
返回主题列表
使用二进制可执行文件,您可以获得 Java 的最佳执行性能,这些二进制文件是使用 JIT 编译器和/或静态编译器编译 Java 源代码获得的。从 Oracle 数据库 11g 开始,OJVM 使用一个允许动态选择、本地编译和执行大多数常用 Java 方法的 JIT 编译器,因此与 Oracle 数据库 10g 中使用的 NCOMp 相比,可获得更好的性能和可管理性。您可以使用以下步骤显示 JIT 编译与 Java 应用程序的解释相比的优势:
返回主题列表
在 OracleJVM 中,用于特定需求的 Java 对象的状态保留在各种成为“对象内存”的特定内存区域中(如 Newspace、Oldspace、Runspace、Stackspace、Sessionspace)。执行以下步骤显示各种 Java 内存区域
返回主题列表
在本教程中,您了解了以下内容:
 |
在数据库中加载和运行 Java 应用程序 |
 |
将 SQL 类型映射到 Java 类型 |
 |
在数据库中调用 Java |
 |
阐述一个对象类型调用规范 |
 |
使用 JIT 编译 Java |
 |
显示 Java 内存区域 |
返回主题列表
将鼠标置于该图标上可以隐藏所有的屏幕截图。
|