之前给大家介绍了java代码调用存储过程,下面要给大家介绍的就是java当中调用oracle存储过程,一起来看看吧。

首先来看一下项目结构:

在数据库创建存储过程的脚本,假如,使用的是本地的oracle数据库,那么,就需要开启服务-OracleOraDb11g_home1TNSListener和OracleServiceORCL。

实现:

输入用户的工号,输出用户名字、薪水以及工作:create or replace procedure queryempinfo(eno in number

, pename out varchar2

, psal out number

, pjob out varchar2)

as

begin

--得到该员工的姓名 月薪和职位

select ename, sal, job into pename, psal, pjob from emp where empno = eno;

end;

之后,在项目当中引入oracle的jdbc的jar包。

Procedure代码:package com.tomhu.procedure;

import java.sql.CallableStatement;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import oracle.jdbc.OracleTypes;

public class Procedure

{

private Connection conn;

private CallableStatement stat;

private ResultSet rs;

String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";

String driverName = "oracle.jdbc.driver.OracleDriver";

String username = "scott";

String password = "******";

String sql = "call queryempinfo(?,?,?,?)";

// 调用存储过程

public void callProcedure()

{

try

{

Class.forName(driverName);

conn = DriverManager.getConnection(url, username, password);

stat = conn.prepareCall(sql);

// 一个输入参数和三个输出参数

stat.setInt(1, 7566);

stat.registerOutParameter(2, OracleTypes.VARCHAR);

stat.registerOutParameter(3, OracleTypes.NUMBER);

stat.registerOutParameter(4, OracleTypes.VARCHAR);

stat.execute();

String name = stat.getString(2);

int sal = stat.getInt(3);

String job = stat.getString(4);

System.out.println("name: " + name + ", sal: " + sal + ", job: " + job);

}

catch (Exception e)

{

e.printStackTrace();

}

finally

{

close(conn, stat, rs);

}

}

// 关闭连接

public void close(Connection conn, CallableStatement stat, ResultSet rs)

{

if (rs != null)

{

try

{

rs.close();

}

catch (SQLException e)

{

e.printStackTrace();

}

finally

{

rs = null;

}

}

if (stat != null)

{

try

{

stat.close();

}

catch (SQLException e)

{

e.printStackTrace();

}

finally

{

stat = null;

}

}

if (conn != null)

{

try

{

conn.close();

}

catch (SQLException e)

{

e.printStackTrace();

}

finally

{

conn = null;

}

}

}

public static void main(String[] args)

{

new Procedure()

.callProcedure();

}

}

输出结果:name: JONES, sal: 2975, job: MANAGER

在java当中如何去调用oracle存储过程你都了解了吧,你还想了解更多java程序代码例子吗?更多相关内容请继续的通过奇Q工具网来进行了解吧!希望上面的文章内容可以对你有所帮助哦。

推荐阅读:

java调用oracle存储过程_java调用oracle存储过程详解相关推荐

  1. java中static作用_java中static作用详解

    static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以修饰静态static代码块,但是Java语言中没有全局变量的概念. 被static ...

  2. java单例设计模式_Java设计模式之单例模式详解

    在Java开发过程中,很多场景下都会碰到或要用到单例模式,在设计模式里也是经常作为指导学习的热门模式之一,相信每位开发同事都用到过.我们总是沿着前辈的足迹去做设定好的思路,往往没去探究为何这么做,所以 ...

  3. java connection 单例_Java设计模式之单例模式详解

    Java设计模式之单例模式详解 什么是设计模式 设计模式是在大量的实践中总结和理论之后优选的代码结构,编程风格,以及解决问题的思考方式.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可 ...

  4. java方法怎么写_java方法定义格式详解,java方法怎么写?

    对于java方法你了解多少呢?你知道java方法应该如何写吗?下面要给大家介绍的就是和java方法相关的内容,一起来了解一下这个概念吧. 在学习运算符的时候,都为每个运算符单独的创建一个新的类和mai ...

  5. java代码轻量级锁_Java轻量级锁原理详解(Lightweight Locking)

    转自http://www.cnblogs.com/redcreen/archive/2011/03/29/1998801.html 大家知道,Java的多线程安全是基于Lock机制实现的,而Lock的 ...

  6. java的static类_java中staticclass静态类详解

    一般情况下是不可以用static修饰类的.如果一定要用static修饰类的话,通常static修饰的是匿名内部类. 在一个类中创建另外一个类,叫做成员内部类.这个成员内部类可以静态的(利用static ...

  7. Java 初始化 代码块_Java中初始化块详解及实例代码

    Java中初始化块详解 在Java中,有两种初始化块:静态初始化块和非静态初始化块. 静态初始化块:使用static定义,当类装载到系统时执行一次.若在静态初始化块中想初始化变量,那仅能初始化类变量, ...

  8. java指数表示法_Java指数计数法详解

    Java指数计数法详解 时间:2017-10-16     来源:华清远见Java培训中心 Java指数计数法并不是一个很难的运算,关键是你要理解应用,很多朋友不理解Java指数计数法,所以也无从运用 ...

  9. java解析json数据_java解析JSON数据详解

    JSON是目前最流行的轻量级数据交换语言(没有之一).尽管他是javaScript的一个子集.但由于其是独立与语言的文本格式,它几乎可以被所有编程语言所支持. 以下是对java语言中解析json数据的 ...

  10. java虚拟机工作原理_Java虚拟机工作原理详解

    一.类加载器 首先来看一下java程序的执行过程. 从这个框图很容易大体上了解java程序工作原理.首先,你写好java代码,保存到硬盘当中.然后你在命令行中输入: javac YourClassNa ...

最新文章

  1. 根据STATUS信息对MySQL进行优化
  2. python全栈面试题_全栈工程师对Python面试中is和==区别的详细解说!看完真的学到了!...
  3. 设计模式(十)------23种设计模式(3):抽象工厂模式
  4. [MyBatisPlus]条件构造器wapper
  5. Java-NIO实战多人聊天室
  6. IE webDriver 驱动下载地址
  7. 【转】Jenkins怎么启动和停止服务
  8. 使用traceview进行Android性能测试(转)
  9. scopt解析参数实例
  10. 零基础程序员如何自学编程
  11. 深度卷积神经网络及各种改进
  12. 毛戈平上市以“光影美学”的理念打造适合中国人的高端化妆品品牌
  13. 在自己电脑上调试微信公众号后台程序:附工具
  14. 渡河问题matlab程序,商人渡河问题(MATLAB版)
  15. MYSQL高可用环境搭建
  16. VC++, VC#, VB.NET 编码规范 (微软一站式示例代码库)
  17. 中国无管道通风柜市场趋势报告、技术动态创新及市场预测
  18. 盘点android 开发工具,盘点Android开发者必备的十大开发工具
  19. 数据分析培训班要学习多长时间?
  20. OWASP Threat Dragon

热门文章

  1. 前端 H5 横屏 独特处理方案详解
  2. 考研复试——概率论(2)
  3. Unity实现体积雾与体积光
  4. 抢占式调度与非抢占式调度
  5. 解决百度云限速以及网页上无法下载大文件的问题
  6. 简单对比几个技术博客类网站
  7. 卖家付出佣钱的付出宝账户
  8. 计算机早期历史 Early computing
  9. VESA--1080P时序代码
  10. SQL SERVER索引原理及填充因子