本文以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程序显示。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)