java调用oracle存储过程_java调用oracle存储过程详解
之前给大家介绍了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存储过程详解相关推荐
- java中static作用_java中static作用详解
static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以修饰静态static代码块,但是Java语言中没有全局变量的概念. 被static ...
- java单例设计模式_Java设计模式之单例模式详解
在Java开发过程中,很多场景下都会碰到或要用到单例模式,在设计模式里也是经常作为指导学习的热门模式之一,相信每位开发同事都用到过.我们总是沿着前辈的足迹去做设定好的思路,往往没去探究为何这么做,所以 ...
- java connection 单例_Java设计模式之单例模式详解
Java设计模式之单例模式详解 什么是设计模式 设计模式是在大量的实践中总结和理论之后优选的代码结构,编程风格,以及解决问题的思考方式.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可 ...
- java方法怎么写_java方法定义格式详解,java方法怎么写?
对于java方法你了解多少呢?你知道java方法应该如何写吗?下面要给大家介绍的就是和java方法相关的内容,一起来了解一下这个概念吧. 在学习运算符的时候,都为每个运算符单独的创建一个新的类和mai ...
- java代码轻量级锁_Java轻量级锁原理详解(Lightweight Locking)
转自http://www.cnblogs.com/redcreen/archive/2011/03/29/1998801.html 大家知道,Java的多线程安全是基于Lock机制实现的,而Lock的 ...
- java的static类_java中staticclass静态类详解
一般情况下是不可以用static修饰类的.如果一定要用static修饰类的话,通常static修饰的是匿名内部类. 在一个类中创建另外一个类,叫做成员内部类.这个成员内部类可以静态的(利用static ...
- Java 初始化 代码块_Java中初始化块详解及实例代码
Java中初始化块详解 在Java中,有两种初始化块:静态初始化块和非静态初始化块. 静态初始化块:使用static定义,当类装载到系统时执行一次.若在静态初始化块中想初始化变量,那仅能初始化类变量, ...
- java指数表示法_Java指数计数法详解
Java指数计数法详解 时间:2017-10-16 来源:华清远见Java培训中心 Java指数计数法并不是一个很难的运算,关键是你要理解应用,很多朋友不理解Java指数计数法,所以也无从运用 ...
- java解析json数据_java解析JSON数据详解
JSON是目前最流行的轻量级数据交换语言(没有之一).尽管他是javaScript的一个子集.但由于其是独立与语言的文本格式,它几乎可以被所有编程语言所支持. 以下是对java语言中解析json数据的 ...
- java虚拟机工作原理_Java虚拟机工作原理详解
一.类加载器 首先来看一下java程序的执行过程. 从这个框图很容易大体上了解java程序工作原理.首先,你写好java代码,保存到硬盘当中.然后你在命令行中输入: javac YourClassNa ...
最新文章
- 根据STATUS信息对MySQL进行优化
- python全栈面试题_全栈工程师对Python面试中is和==区别的详细解说!看完真的学到了!...
- 设计模式(十)------23种设计模式(3):抽象工厂模式
- [MyBatisPlus]条件构造器wapper
- Java-NIO实战多人聊天室
- IE webDriver 驱动下载地址
- 【转】Jenkins怎么启动和停止服务
- 使用traceview进行Android性能测试(转)
- scopt解析参数实例
- 零基础程序员如何自学编程
- 深度卷积神经网络及各种改进
- 毛戈平上市以“光影美学”的理念打造适合中国人的高端化妆品品牌
- 在自己电脑上调试微信公众号后台程序:附工具
- 渡河问题matlab程序,商人渡河问题(MATLAB版)
- MYSQL高可用环境搭建
- VC++, VC#, VB.NET 编码规范 (微软一站式示例代码库)
- 中国无管道通风柜市场趋势报告、技术动态创新及市场预测
- 盘点android 开发工具,盘点Android开发者必备的十大开发工具
- 数据分析培训班要学习多长时间?
- OWASP Threat Dragon