如何在Oracle数据库中使用Java存储过程

如何在Oracle数据库中使用Java存储过程,第1张

本文以Oracle为例 介绍一下java存储过程的具体用法

一 如何创建java存储过程?

通常有三种方法来创建java存储过程

使用Oracle的sql语句来创建

e g 使用create or replace and pile java source named as

后边跟上java源程序 要求类的方法必须是public static的 才能用于存储过程

SQL>create or replace and pile java source named javademo

as

import java sql *

public class JavaDemo

{

public static void main(String[] argv)

{

System out println( hello java demo )

}

}

/

Java 已创建

SQL>show errors java source javademo

没有错误

SQL>create or replace procedure javademo

as

language java name JavaDemo main(java lang String[])

/

过程已创建

SQL>set serveroutput on

SQL>call javademo ()

调用完成

SQL>call dbms_java set_output( )

调用完成

SQL>call javademo ()

hello java demo

调用完成

SQL>call javademo ()

hello java demo

调用完成

使用外部class文件来装载创建

e g 这里既然用到了外部文件 必然要将class文件放到oracle Server的某一目录下边

public class OracleJavaProc

{

public static void main(String[] argv)

{

System out println( It s a Java Oracle procedure )

}

}

SQL>grant create any directory to scott

授权成功

SQL>conn scott/tiger@iihero oracledb

已连接

SQL>create or replace directory test_dir as d:\oracle

目录已创建

SQL>create or replace java class using bfile(test_dir OracleJavaProc CLASS )

/

Java 已创建

SQL>create or replace procedure testjavaproc as language java name OracleJavaProc main(java lang String[])

/

过程已创建

SQL>call testjavaproc()

调用完成

SQL>execute testjavaproc

PL/SQL 过程已成功完成

SQL>set serveroutput on size

SQL>call dbms_java set_output( )

调用完成

SQL>execute testjavaproc

lishixinzhi/Article/program/Oracle/201311/17720

class12.jar文件。

由于thin驱动都是纯Java代码,并且使用TCP/IP技术通过java的Socket连接上Oracle数据库,所以thin驱动是与平台无关的,无需安装Oracle客户端,只需要下载一个thin驱动的jar包,并且将环境变量中的CLASS_PATH变量中加入thin驱动的路径就可以了。

Thin驱动虽然与平台无关,也无需安装Oracle客户端,但是有一个致命的缺陷就是性能一般,达不到如OCI方式的企业级的要求。另外,如果一个oracle数据库对应一台主机,可以使用thin连接;如果一个oracle数据库对应四五台主机(集群服务器)。

使用thin时,需要把tnsnames.ora文件中的相关数据库的整个连接字符串都拷贝下来,如此才能连接上oracle集群数据库。

使用OCI连接数据库是企业级的做法,适应于单个数据库和集群数据库,性能优越,尤其是连接池功能大大提高了应用程序的性能和并发量。唯一的缺点是,若想使用OCI必须要安装Oracle客户端。

Oracle数据库,由于它是完全面向对象、强大的数据库管理系统,很多管理数据库的任务都可以只使用Oracle的SQL语句完成。而且,Oracle的SQL语句支持复杂的查询,如JOIN、子查询等,因此可以查出比java自身支持的更多的数据。但是,java和Oracle也可以有效的相互协作:Java程序可以使用Oracle的jdbc驱动来与Oracle连接,并执行由Oracle发出的SQL语句,从而查询出Oracle数据库中的数据,并返回给Java程序显示。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9923717.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存