java基础----java调用oracle存储过程(转)
存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。今天,我们就开始学习java中调用oracle的存储过程。
java中调用oracle的存储过程
项目结构如下:
一、 在数据库创建存储过程的脚本,如果使用的是本地的oracle数据库,则需要开启服务:OracleOraDb11g_home1TNSListener和OracleServiceORCL。
存储过程实现:输入用户的工号,输出用户的名字、薪水和工作。
![](/assets/blank.gif)
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;
![](/assets/blank.gif)
二、 在项目中引入oracle的jdbc的jar包,Procedure的代码如下:
![](/assets/blank.gif)
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();} }
![](/assets/blank.gif)
三、 得到的输出结果:
name: JONES, sal: 2975, job: MANAGER
友情链接
jdbc的jar包: http://pan.baidu.com/s/1jHUTPRo
http://www.cnblogs.com/huhx/p/JavaProcedure.html
转载于:https://www.cnblogs.com/softidea/p/5510644.html
java基础----java调用oracle存储过程(转)相关推荐
- java调用存储过程 oracle_java调用oracle存储过程
java调用oracle存储过程 java代码 Map param = new HashMap(); param.put("in_str", "1,2,3,4" ...
- oracle java存储过程返回值_java程序调用Oracle 存储过程 获取返回值(无返回,非结果集,结果集)...
java程序调用Oracle 存储过程 获取返回值(无返回,非结 果集,结果集) oracle中procedure是不能有返回值的,要想返回值,就得有 输出参数,同样要想返回记录集,可以把游标类型作为 ...
- java c3p0 存储过程_JAVA Spring 连接池 调用 Oracle 存储过程的问题?
求助,JAVA Spring 连接池 调用 Oracle 存储过程的问题?在Spring中配置了c3P0的连接池,在调用Oracle的存储过程时,报错[code]java.lang.ClassCast ...
- java调用oracle过程,JAVA调用ORACLE存储过程报错
当前位置:我的异常网» Java Web开发 » JAVA调用ORACLE存储过程报错 JAVA调用ORACLE存储过程报错 www.myexceptions.net 网友分享于:2015-07-1 ...
- java调用oracle存储过程_java调用oracle存储过程详解
之前给大家介绍了java代码调用存储过程,下面要给大家介绍的就是java当中调用oracle存储过程,一起来看看吧. 首先来看一下项目结构: 在数据库创建存储过程的脚本,假如,使用的是本地的oracl ...
- spring+springMvc+mybatis 调用oracle 存储过程
最近在项目中遇到在mybatis中调用oracle存储过程的问题,网上各种查询,最终解决了问题,在我们项目中我只需要oracle 的存储过程返回一个字符串用来存入数据库作为表数据的主键, 接下来整理代 ...
- php oracle 存储过程 返回值,PHP 调用 Oracle 存储过程 之 查询
在网上找了很久都没找到结果,今天看帮助,结合JAVA程序中的一个实例,写出了这个PHP调用Oracle存储过程的例子,也许有人会说PHP调用存储过程是很简单的,但在这里我还是想把这点小成就拿来共享一下 ...
- Java基础——Java多继承的三种实现方式
Java基础--Java"多继承"的三种实现方式 Java语言本身只支持单继承(每个类只能有一个父类),但单继承的局限性很大,因此,可以通过以下的方式实现"多继承&quo ...
- Java基础----Java编程语言概述
Java基础----Java编程语言概述 文章目录 Java基础----Java编程语言概述 Java编程语言概述 1-1 软件开发介绍 1.1软件开发介绍 1.2 常用命令 1-2 计算机编程语言介 ...
- JAVA基础--JAVA SE(知识点总结 Ⅴ )
前面内容请见: JAVA基础–JAVA SE(知识点总结 Ⅰ ) JAVA基础–JAVA SE(知识点总结 Ⅱ ) JAVA基础–JAVA SE(知识点总结 Ⅲ ) JAVA基础–JAVA SE(知识 ...
最新文章
- centos查看历史指令记录_CentOS 系统通过 curlftpfs 挂载 FTP 服务器为本地磁盘
- 如何快速的给你的项目添加icon图标
- IDEA IntelliJ 如何设置web项目的热部署
- Java网络编程笔记6
- 【移动开发】Android应用开发者应该知道的东西
- r shiny app的学习和使用,这个我认为是作为大学生最适合的入门网页开发工具!!!
- python 脚本学习(二)
- avocado自动化测试框架
- 紫书 习题 8-15 UVa 1617 (贪心)
- groovy 和 java的区别_Groovy和JAVA的区别
- NLP简报(Issue#1)
- Apollo(阿波罗)是携程框架部门研发的分布式配置中心,ubuntu本机安装
- 十、基于FPGA的PCIE协议介绍(一)
- PMP培训一般是多久?怎么收费?
- JDK的下载及其安装
- MAC word2015 插入罗马字母
- 爱尔兰咖啡(作者:痞子蔡)
- freemarker导出Word文档并在其中插入图片
- 码农的自我修养 - 指令集架构种类
- live server