首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 
设为首页
加入收藏
联系我们
热门关键字: .net应用  操作系统  Dreamweaver  WinRAR  网络推广
高级搜索
您当前的位置: 主页>JAVA专区>J2SE>详例实现java调用ORACLE的存储过程代码
详例实现java调用ORACLE的存储过程代码
来源: 发布时间:2008-06-01 发布人: 浏览: 人次   字体: [ ]  
本篇文章主要是在java中调用ORACLE存储过程,并把要用到的存储过程和代码列了出来,给大家做一个参考:
一:无返回值的存储过程
存储过程为:
CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS
BEGIN
INSERT INTO HYQ.B_ID (I_ID,I_NAME) VALUES (PARA1, PARA2);
END TESTA;
然后呢,在java里调用时就用下面的代码:
package com.hyq.src;

import java.sql.*;
import java.sql.ResultSet;

public class TestProcedureOne {
public TestProcedureOne() {
}
public static void main(String[] args ){
String driver = "oracle.jdbc.driver.OracleDriver";
String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521: hyq ";
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
CallableStatement cstmt = null;

try {
  Class.forName(driver);
  conn = DriverManager.getConnection(strUrl, " hyq ", " hyq ");
  CallableStatement proc = null;
  proc = conn.prepareCall("{ call HYQ.TESTA(?,?) }");
  proc.setString(1, "100");
  proc.setString(2, "TestOne");
  proc.execute();
}
catch (SQLException ex2) {
  ex2.printStackTrace();
}
catch (Exception ex2) {
  ex2.printStackTrace();
}
finally{
  try {
  if(rs != null){
    rs.close();
    if(stmt!=null){
    stmt.close();
    }
    if(conn!=null){
    conn.close();
    }
  }
  }
  catch (SQLException ex1) {
  }
}
}
}
当然了,这就先要求要建张表TESTTB,里面两个字段(I_ID,I_NAME)。
二:有返回值的存储过程(非列表)
存储过程为:
CREATE OR REPLACE PROCEDURE TESTB(PARA1 IN VARCHAR2,PARA2 OUT VARCHAR2) AS
BEGIN
SELECT INTO PARA2 FROM TESTTB WHERE I_ID= PARA1;
END TESTB;
在java里调用时就用下面的代码:
package com.hyq.src;

public class TestProcedureTWO {
public TestProcedureTWO() {
}
public static void main(String[] args ){
String driver = "oracle.jdbc.driver.OracleDriver";
String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:hyq";
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
try {
  Class.forName(driver);
  conn = DriverManager.getConnection(strUrl, " hyq ", " hyq ");
  CallableStatement proc = null;
  proc = conn.prepareCall("{ call HYQ.TESTB(?,?) }");
  proc.setString(1, "100");
  proc.registerOutParameter(2, Types.VARCHAR);
  proc.execute();
  String testPrint = proc.getString(2);
  System.out.println("=testPrint=is="+testPrint);
}
catch (SQLException ex2) {
  ex2.printStackTrace();
}
catch (Exception ex2) {
  ex2.printStackTrace();
}
finally{
  try {
  if(rs != null){
    rs.close();
    if(stmt!=null){
    stmt.close();
    }
    if(conn!=null){
    conn.close();
    }
  }
  }
  catch (SQLException ex1) {
  } } } } }

注意,这里的proc.getString(2)中的数值2并非任意的,而是和存储过程中的out列对应的,如果out是在第一个位置,那就是proc.getString(1),如果是第三个位置,就是proc.getString(3),当然也可以同时有多个返回值,那就是再多加几个out参数了。

共2页: 上一页 1 [2] 下一页
↓下一篇:没有了
相 关 文 章   发布商链接
·JAVA最为基础知识精华总结
·用Swing实现数据表格功能
·利用Java实现zip压缩/解压缩
·如何用Java获得IP地址
·什么时候用抽象类,什么时候用接口?
·JAVA通过JNI调用本地C语言方法
·Java开发中的事件驱动模型实例详解...
·如何使用Java操作Windows系统注册表
·为Java程序中添加播放MIDI音乐功能
·了解Java 语言中的IO系统
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·java读取和修改ini配置文件实
·如何用java实现快速排序算法...
·java中的字节流和字符流的存...
·Java调用SQL Server存储过程(
·java垃圾回收机制的意义及其...
·Java网络数据流解析的三种方...
·Java在Linux下处理图形遇到问
·在Linux上远程部署Java应用程
·用JAVA实现文本形式的树状结...
·JAVA冒泡排序法代码小实例
·java实现输出加密码保护的exc...
·Java多种方法实现删除一个集...
·怎么打包成jar文件步骤
·Java实现图像编码输出的示例...
·Java操作Word, Excel文档示例
热 门 文 章
·JAVA冒泡排序法代码小实例
·怎么打包成jar文件步骤
·Java编写的模拟ATM取款机程序...
·Java操作Word, Excel文档示例
·什么时候用抽象类,什么时候用...
·用JAVA实现文本形式的树状结...
·java实现输出加密码保护的exc...
·实例解说java 反射机制
·利用Java实现zip压缩/解压缩
·java中(overload)重载与(over...
·JAVA最为基础知识精华总结
·利用Java 3D技术播放动画之JM...
·Java调用SQL Server存储过程(...
·Java实现图像编码输出的示例...
·基于java的图片文件格式转换...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .