当前位置:  数据库>oracle

Java调用Oracle存储过程教程

    来源: 互联网  发布时间:2017-04-13

    本文导语: Java跟Oracle之间最常用的是Java调用Oracle的存储过程,以下简要说明下Java如何对Oracle存储过程进行调用。 Ⅰ、Java调用Oracle存储过程【不带输出参数】 过程名称为pro1,参数个数1个,数据类型为整形数据。 import java.sql.*;   public cla...

Java跟Oracle之间最常用的是Java调用Oracle的存储过程,以下简要说明下Java如何对Oracle存储过程进行调用。

Ⅰ、Java调用Oracle存储过程【不带输出参数】

过程名称为pro1,参数个数1个,数据类型为整形数据。

import java.sql.*; 
 
public class ProcedureNoArgs { 
  public static void main(String args[]) throws Exception { 
    // 加载Oracle驱动 
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); 
    // 获得Oracle数据库连接 
    Connection conn = DriverManager.getConnection( 
        " jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd); 
    // 创建存储过程的对象 
    CallableStatement c = conn.divpareCall(" {call pro1(?)} "); 
    // 给Oracle存储过程的参数设置值 ,将第一个参数的值设置成188 
    c.setInt(1, 188); 
    // 执行Oracle存储过程 
    c.execute(); 
    conn.close(); 
  } 
}
















Ⅱ、JAVA调用Oracle存储过程【带输出参数的情况】
过程名称为pro2,参数个数2个,数据类型为整形数据,返回值为整形类型

import java.sql.*; 
 
public class ProcedureWithArgs { 
  public static void main(String args[]) throws Exception { 
    // 加载Oracle驱动 
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); 
    // 获得Oracle数据库连接 
    Connection conn = DriverManager.getConnection( 
        "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd); 
    // 创建Oracle存储过程的对象,调用存储过程 
    CallableStatement c = conn.divpareCall("{call pro2(?,?)}"); 
    // 给Oracle存储过程的参数设置值 ,将第一个参数的值设置成188 
    c.setInt(1, 188); 
    // 注册存储过程的第二个参数 
    c.registerOutParameter(2, java.sql.Types.INTEGER); 
    // 执行Oracle存储过程 
    c.execute(); 
    // 得到存储过程的输出参数值并打印出来 
    System.out.println(c.getInt(2)); 
    conn.close(); 
  } 
}




















   以上即是在JAVA中调用Oracle存储过程的最简单的实例,接下来将介绍有关JAVA跟Oracle存储过程的其他方面内容。


二、使用JAVA创建Oracle存储过程
先看下如何使用JAVA来编写Oracle存储过程,我们在Oracle的sql plus中编写语句。
Ⅰ、启动SQL PLUS
Ⅱ、编写JAVA类,定义JAVA类别名,本存储过程为简单地输出传入参数的平方值。



create or replace and compile java source named  "PF"  as
/** 
* 通过JAVA类来 创建Oracle存储过程 
*/ 
package org.oraclejava.pro; 
 
public class javaCreatePro { 
  public static String test(int num) { 
    return num + "的平方为: " + num * num; 
  } 
}









Ⅲ、将JAVA类中的方法test创建为一个Oracle函数方法

create or replace function PF_FUN(name integer) return varchar2 as language java name 'org.oraclejava.pro.javaCreatePro.test(java.lang.Integer) return java.lang.String'; 


Ⅳ、在控制台直接调用创建的Oracle函数

  select PF_FUN(10) from dual;

Ⅴ、输出结果
10的平方为:100


    
 
 

您可能感兴趣的文章:

  • VB编写的DLL不能被JAVA调用,用C将VB编写的DLL包装起来,做成一个新的DLL;用C编写的DLL可以被JAVA调用,用JAVA再进行一层的包装,因为JAV
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 可不可以用java调用其他语言的编译结果?(好象asp调用com那样)
  • 请问如何在Java中调用一个VB所写的DLL?如何调用这个Dll的方法?如何取得和设置这个Dll的属性值?谢谢!
  • ###java调用COM组件或COM调用java组件(EJB)解决办法。###
  • java线程怎么调用java的application.class?
  • 求救!!如何在java程序中调用外部非java的exe文件?
  • 急!请问有分析java程序性能瓶颈的工具吗?例如,统计 java 程序中函数调用次数?
  • java.awt 和java.util都有List,想调用awt的List而出现Ambiguous class错误怎么办?
  • 一个.java文件中怎样来调用另一个.java文件中的变量及其它东西!
  • java调用sh脚本遇到export命令会卡住,sh不能调用子sh
  • Java能调用OLE对象吗?怎样利用Java生成Excel报表?
  • java打包后如何调用?
  • 请问Java可否调用MsSQL的存储过程,如何调用?
  • 奇怪?我在jsp中调用java类。java类本身编译没错,但jsp中的引用Tomcat总是报错。
  • java能否调用dll或ocx
  • 如何用java调用word?来者给分!·!!!!!
  • 怎么在java里调用一个oracle的procedure呢?
  • 我在APPLET里调用JAVAMAIL发邮件,出现java.security.AccessControlException: access denied (java.util.PropertyPermission * read,write)的错误???
  • 求教!!!VC应用调用Java模块可行吗?
  • java将类序列化并存储到mysql(使用hibernate)
  • java调用sql server存储过程,如何取存储过程返回码(不是结果集)
  • 请问各位大侠怎样在java中调用存储过程和接受存储过程的返回参数
  • 使用Statement.java里的execute执行存储过程问题
  • java调用存储过程问题。
  • 各位你们用 JAVA 做MRP软件用"存储过程"吗 ?
  • java数据存储的问题
  • 在SQL server 2000中用JAVA实现图片存储
  • 如何用java对mysql存储文件
  • 一点java awt程序的调试过程(烂人专栏,大牛莫进)还有问题呀 iis7站长之家
  • 请一下java中组数的存储结构是怎么样的??
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 一个小问题,JAVA中计算某个过程的执行时间,回答了马上给分,10分钟内响应啊
  • 关于java编译过程中的bug说明
  • redhat 9 下安装 oracle9i 过程中,要求指定java目录,到底是哪一个目录?
  • 请问怎么在java的控件里画条线?思路,过程?谢谢
  • java调oracle过程的出了问题,求助!帮忙看看
  • 请问一般JAVA BEAN的开发过程是怎样的?(100分,在现等待,马上送)
  • 用java语言做一个银行和ATM,需要用到哪些知识???哪位教我具体的过程,步骤给200分.
  • 请教一下JAVA程序设计开发过程
  • 使用记事本编写java程序全过程图解
  • 大讨论:在java的开发过程中,大家都是用什么工具进行文档管理的?
  • Oracle中的存储过程在pl/sql和java中如何调用
  • java中关于合成过程中初始化的一问
  • java调用oracle存储过程的简单问题
  • java Class文件内部结构解析过程详解
  • Java类变量和成员变量初始化过程的应用介绍
  • java调用Oracle存储过程的方法实例
  • 一点java awt程序的调试过程(烂人专栏,大牛莫进)还有问题呀
  • Windows7下的Java运行环境搭建过程图解
  • java调用oracle分页存储过程示例
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍
  • 我对JAVA一窍不通,可惜别人却给我一个Java的project,要我做一个安装程序,请问哪里有JAVA INSTALLER下载,而且我要不要安装java的sdk才能完成此项任务?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3