APP下载

Oracle中基于Java的存储过程开发

2011-10-31

淮北职业技术学院学报 2011年1期
关键词:源代码芜湖调用

周 岚

(芜湖信息技术学院软件工程系,安徽芜湖 241003)

Oracle中基于Java的存储过程开发

周 岚

(芜湖信息技术学院软件工程系,安徽芜湖 241003)

存储过程是一种数据库对象,将执行计划存储在数据库的服务器中,它的执行速度比独立执行同样的程序要快。任何一个设计良好的数据库应用程序都应该用到存储过程。存储过程可以使得对数据库的管理、显示关于数据库及其用户信息的工作容易很多。文中详细分析了Java存储过程的开发步骤。

Java存储过程;Oracle9i数据库;Java函数

1 存储过程的介绍

1.1 存储过程的概念

存储过程是一种数据库对象,将执行计划存储在数据库的服务器中,它的执行速度比独立执行同样的程序要快。存储过程可以使得对数据库的管理、显示关于数据库及其用户信息的工作容易很多。存储过程可以包含数据流、逻辑以及对数据库的查询。在Oracle9i中应用开发人员除了可使用PL/SQL还可以使用Java来开发他们的业务逻辑,并将这个业务逻辑作为存储过程、函数和触发程序部署在数据库中。

当调用Java存储过程时,数据库会直接运行该存储过程,无需进行编译。相对于SQL语句或PL/SQL块而言,其执行速度更快。

1.2 设计存储过程的方针

(1)在定义存储过程时,要使用其完成单一、相对集中的任务。

(2)在定义存储过程时,不要定义已经由其它特征所提供功能的过程。例如,不要定义强制数据完整性的过程(使用完整性约束)。

1.3 存储过程的类型

Oracle9i支持四种不同类型的存储过程,用PL/SQL或Java,都可以实现全部四种类型的存储过程。这四种存储过程类型是:存储过程、存储函数、数据库触发器和对象类型方法。

1.4 存储过程的调用

在Oracle9i里,这四种存储程序类型的每一种,都可以从不同的调用环境调用,这些调用环境是:SQL语句或DML语句、顶级CALL语法、PL/SQL块、子程序(包)和触发器的隐式调用。

2 教师信息管理系统中Java存储过程的开发和设计

2.1 创建Java存储过程的一般步骤

(1)Java存储过程的开发步骤:编写Java源代码、装载Java代码及类到Oracle9i数据库中、生成调用说明和调用JSP。

要将Java方法转换为Java存储过程需要几个步骤,包括:用loadjava实用程序将Java类加载到数据库中,利用调用规范(Call Spec)发布Java方法,将Java方法、参数类型和返回类型映射到其SQL的对应部分。

(2)编写Java源代码

当开发Java存储过程时,首先应该编写Java源代码。如下所示:

(3)装载Java代码及类到Oracle9i数据库中

在编写了Java源代码之后,接下来应该将Java代码及相应的Java类装载到Oracle9i数据库中。如图1所示:

装载Java代码及类到RDBMS有以下两种方法:

使用loadjava工具,通过该工具可以快速装载Java源代码(.java)、Java二进制代码(.class)以及Java打包文件(.jar)。

使用CREATE Java、ALTER Java装载Java代码。

图1 Oracle9i中的Java类

(4)生成调用说明

在装载了Java类之后,接下来应该生成对public static方法的调用说明,最终完成Java存储过程的开发工作。

完成上述步骤之后,就完成了Java存储过程的开发工作,然后就可以调用并执行该Java存储过程了。

2.2 使用Java开发过程

过程用于执行某种操作。需要注意的是,过程所对应的Java方法返回值必须为空(void)。本节以创建用于插入、修改和删除THEACHERS表的JSP为例,说明使用Java开发过程的方法。如图2所示:

图2 使用Java开发过程示例

下面讲述完成上述任务的方法及过程:

(1)编写Java源代码

程序清单如下(manipulate_teachers.java):

(3)发行Java,生成调用说明

在装载了Java类后,就可以发行该Java类,并生成调用其方法的过程说明了。下面是完成该项任务的方法:

(5)分析

在这我们使用了Java存储过程,与PL/SQL相比,使用Java语言开发存储过程只被发送到数据库一次,相对于SQL语句或PL/SQL块而言,其网络通信量更小。而且当调用Java存储过程时,数据库会直接运行该存储过程,无需进行编译。相对于SQL语句或PL/SQL块而言,它省去了编译的时间,因此其执行速度更快。

2.3 使用Java开发函数

函数用于返回特定数据。可通过创建用于返回教师所教授的课程标题,以及课程数为例,说明使用Java开发函数的方法。如图3所示:

图3 使用Java开发函数示例

3 结束语

任何一个设计良好的数据库应用程序都应该用到存储过程。存储过程可以使得对数据库的管理、显示关于数据库及其用户信息的工作容易很多。存储过程可以帮助你在代码中分离逻辑.Oracle数据库与Java VM的集成可以创建可移植、功能强大和数据库无关的数据逻辑和持续性逻辑。Java语言具有更强大的运算能力,提供了更多的运算方法,可以应用于更多的数据库系统(如Sybase、DB2、Informix等等)。Java的存储过程可以解决不同数据库厂商使用各种专有的、且依赖于数据库的实现语言的问题,利用Java存储过程沟通SQL、XML、Java、J2EE和Web服务。

[1] Kevin Loney,Marlene Theriault,等.Oracle 9iDBA手册[M].蒋蕊,王磊,等,译.北京:机械工业出版社,2005.

[2] 丁岳伟,彭敦陆.Java程序设计[M].北京:高等教育出版社,2005.

[3] John Carnell,等.Oracle 9iJava程序设计—使用PL/SQL和Java的解决方案[M].康博,译.北京:清华大学出版社,2002.

[4] 周悦芝.Oracle J2EE应用开发[M].北京:清华大学出版社,2005.

[5] 王洪,朱锐.数据库存储过程设计及应用[M].电子信息对抗技术,2009(2).

责任编辑:孟云玲

TP311.13

A

1671-8275(2011)01-0004-03

2010-09-08

安徽省青年优秀人才基金资助项目“面向IT产业需求如何培养高职软件技术人才”(项目编号:2009SQRZ224)阶段性成果。

周岚(1978-),女,安徽绩溪人,芜湖信息技术学院软件工程系讲师,硕士。

猜你喜欢

源代码芜湖调用
基于TXL的源代码插桩技术研究
芜湖滨江天际线
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
芜湖枢纽GSM-R覆盖方案设计
软件源代码非公知性司法鉴定方法探析
基于语法和语义结合的源代码精确搜索方法
基于系统调用的恶意软件检测技术研究
揭秘龙湖产品“源代码”
芜湖:社区卫生机构公办民营