`
peng_jian_ming
  • 浏览: 255089 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Java连接Oracle数据库调用存储过程获取数据集

    博客分类:
  • Java
阅读更多
package com.yc.ycportal.ge.util;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import com.mysql.jdbc.ResultSet;

public class TestOracle {

    private Connection conn=null;
    private CallableStatement call=null;
    private ResultSet rs=null;

    public TestOracle() {
      try {
        Class.forName("oracle.jdbc.driver.OracleDriver");
        setConn();
      }
      catch (ClassNotFoundException ex) {
      }
    }

    public void setConn(){
      String url="jdbc:oracle:thin:@localhost:1521:hy";
      try {
        conn = DriverManager.getConnection(url, "system", "manager");
        System.out.println("conn ok");
      }
      catch (SQLException ex) {
      }
    }

    public void closeConn(){
      if(conn!=null){
        try {
          conn.close();
          System.out.println("conn close");
        }
        catch (SQLException ex) {
        }
      }
    }

    //调用单独的具有输出参数的过程
    public void testShuchu(int salary ){
      //实例化cal
      try {
        //cal = conn.prepareCall("{call hr.shuchu(?,?)}");
        call=conn.prepareCall("begin hr.shuchu(?,?); end;");
        call.setInt(1,salary);
        //注册输出参数
        //cal.registerOutParameter(2,java.sql.Types.VARCHAR);
        call.registerOutParameter(2,oracle.jdbc.OracleTypes.VARCHAR);
        call.execute();
        //获得输出参数
       // String str=cal.getString(2);
       String str=(String)call.getObject(2);
       System.out.println(str);
      }
      catch (SQLException ex) {
      }
      finally{
        try {
          call.close();
        }
        catch (SQLException ex1) {
        }
      }

    }

// 调用函数
    public void testHanshu(int num1,int num2){
      try {
        call = conn.prepareCall("begin ?:=hr.mypack.myfunc(?,?); end;");
        call.setInt(2,num1);
        call.setInt(3,num2);
        call.registerOutParameter(1,oracle.jdbc.OracleTypes.NUMBER);
        call.execute();
        int num = call.getInt(1);
        System.out.println(num);
      }
      catch (SQLException ex) {
      }
      finally{
        try {
          call.close();
        }
        catch (SQLException ex1) {
        }
      }

    }

// 调用游标
    public void testRs(int salary){
      try {
        call = conn.prepareCall("begin hr.mypack.shuchu(?,?); end;");
        call.setInt(1,salary);
        call.registerOutParameter(2,oracle.jdbc.OracleTypes.CURSOR);
        call.execute();
        rs=(ResultSet)call.getObject(2);

        if(rs!=null){
          while (rs.next()) {
            System.out.println(rs.getString(2));
          }
        }
        else{
          System.out.println("查无结果");
        }
      }
      catch (SQLException ex) {
      }
    finally{
      try {
        rs.close();
        call.close();
      }
      catch (SQLException ex1) {
      }

    }
    }
    public static void main(String[] args) {
     TestOracle dbUtil1 = new TestOracle();
     dbUtil1.testRs(420);
    }

}
分享到:
评论

相关推荐

    oracle 触发器实时调用java 中http接口

    oracle insert数据成功之后调用触发器,触发器调用存储过程,存储实时调用java http

    Oracle11g从入门到精通

    《Oracle11g从入门到精通》面向数据库管理人员和数据库开发人员,从实际角度出发,系统地介绍了数据库和Oracle的相关概念和原理、Oracle的数据库...完整案例来介绍基于Java开发包和Oracle数据库进行案例开发的详细过程...

    oracle数据库经典题目

    系统权限提供了在Oracle数据库系统范围内执行某种任务的操作能力,而对象权限则是一种赋予用户在指定的数据库对象(如表、视图、过程等) 16. Oralce数据库在进行物理备份有联机备份和脱机备份两种方式可供选择。 ...

    用java调用oracle存储过程总结

    一种类似于SELECT查询,用于检索数据,检索到的数据能够以数据集的形式返回给客户。另一种类似于INSERT或DELETE查询,它不返回数据,只是执行一个动作。有的服务器允许同一个存储过程既可以返回数据又可以执行动作。...

    Oracle11g从入门到精通2

    《Oracle11g从入门到精通》面向数据库管理人员和数据库开发人员,从实际角度出发,系统地介绍了数据库和Oracle的相关概念和原理、Oracle的数据库...完整案例来介绍基于Java开发包和Oracle数据库进行案例开发的详细过程...

    JDBC 3.0数据库开发与设计

    4.2 调用存储过程对象 4.2.1 CallableStatement对象的创建 4.2.2 IN、OUT及INOUT参数的使用 4.2.3 执行CallableStatement Object对象 4.2.4 CallableStatement对象使用实例 4.2.5 SQL Server存储过程编程经验...

    JAVA上百实例源码以及开源项目源代码

     Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText(); //得到服务器地址  ...

    Oracle自学(学习)材料 (共18章 偏理论一点)

    1 Oracle 结构组件 目标 1-2 基本结构概述 1-3 Oracle 服务器 1-4 Oracle 实例 1-5 建立连接和创建会话 1-6 Oracle 数据库 1-7 物理结构 1-8 内存结构 1-9 系统全局区(SGA) 1-10 共享池 1-12 库缓存 1-13 数据字典...

    java开源包1

    Oracle数据库工具 WARTS WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是...

    java开源包4

    Oracle数据库工具 WARTS WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是...

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    │ Java面试题31.jdbc调用存储过程.mp4 │ Java面试题32.简单说一下你对jdbc的理解.mp4 │ Java面试题33.写一个jdbc的访问oracle的列子.mp4 │ Java面试题34.jdbc中preparedStatement比Statement的好处.mp4 │ Java...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其三、职业方向多:Oracle数据库管理方向、Oracle开发及系统架构方向、Oracle数据建模数据仓库等方向。 四、 如何学习 认真听课、多思考问题、多动手操作、有问题一定要问、多参与讨论、多帮组同学 五、 体系结构 ...

    JAVA上百实例源码以及开源项目

    百度云盘分享 ... Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText();...

    java开源包11

    Oracle数据库工具 WARTS WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是...

    java开源包6

    Oracle数据库工具 WARTS WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是...

    java开源包9

    Oracle数据库工具 WARTS WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是...

    java开源包101

    Oracle数据库工具 WARTS WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是...

    java开源包5

    Oracle数据库工具 WARTS WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是...

Global site tag (gtag.js) - Google Analytics