打开 PLSQL 创建一张:如果你没有PLSQL  找我

-- Create table
create table T_QUN_STUDY
(
  T_ID       NUMBER not null,
  T_NAME     VARCHAR2(50),
  T_PASSWORD VARCHAR2(50)
)
tablespace USERS
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64
    minextents 1
    maxextents unlimited
  );
-- Create/Recreate primary, unique and foreign key constraints
alter table T_QUN_STUDY
  add primary key (T_ID)
  using index
  tablespace USERS
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );

写的存储过程包和主体:

CREATE OR REPLACE PACKAGE BODY QUN_STUDY IS
  ------------------------------
  --插入新数据--
  --author:xiaohe--
  --date:2009-11-21--
  PROCEDURE INSERT_T_QUN_STUDY(P_ID       IN NUMBER,
                               P_NAME     IN VARCHAR2,
                               P_PASSWORD IN VARCHAR2) IS
  BEGIN
    INSERT INTO T_QUN_STUDY
      (T_ID, T_NAME, T_PASSWORD)
    VALUES
      (P_ID, P_NAME, P_PASSWORD);
  END;
  ----------------------------
  --删除信息--
  --author:xiaohe--
  --date:2009-11-21 --
  PROCEDURE DEL_T_QUN_STUDY(P_ID IN NUMBER, X_OUT_RECORD OUT NUMBER) IS
  BEGIN
    DELETE T_QUN_STUDY TQS WHERE TQS.T_ID = P_ID;
    X_OUT_RECORD := 0;
  EXCEPTION
    WHEN OTHERS THEN
      X_OUT_RECORD := -1;
  END;
  -------------------------------
  --查询表所有信息--
  ----
  ----
  PROCEDURE QUERY_ALL_INFO(X_OUT_RECORD OUT NUMBER,
                           X_OUT_CURSOR OUT SYS_REFCURSOR) IS
  BEGIN
    OPEN X_OUT_CURSOR FOR
      SELECT * FROM T_QUN_STUDY;
    X_OUT_RECORD := 0;
  EXCEPTION
    WHEN OTHERS THEN
      X_OUT_RECORD := -1;
  END;

END QUN_STUDY;

JAVA 代码调用:

package com.procedure.core;

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

import oracle.jdbc.OracleTypes;

public class ConnectionDataBase {
 private String name = "scott";
 private String password = "tiger";
 private String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
 private String driverClassName = "oracle.jdbc.driver.OracleDriver";

/**
  * 返回数据库 连接
  *
  * @return
  */
 public Connection getConn() {
  Connection conn = null;
  try {
   Class.forName(driverClassName);
   conn = DriverManager.getConnection(url, name, password);

} catch (Exception e) {
   e.printStackTrace();
  }
  return conn;
 }

public static void main(String[] agrs) throws SQLException {
  ConnectionDataBase cdb = new ConnectionDataBase();
  /**
   * 添加 无输出参数
   */
  // Connection conn = cdb.getConn();
  // CallableStatement call = conn
  // .prepareCall("{call QUN_STUDY.INSERT_T_QUN_STUDY(?,?,?)}");
  // call.setInt(1, 4);
  // call.setString(2, "蒙-混混");
  // call.setString(3, "76544");
  // boolean flag = call.execute();
  // System.out.println(flag);
  /**
   * 删除 得到输出参数
   */
  // Connection conn = cdb.getConn();
  // CallableStatement call = conn
  // .prepareCall("{call QUN_STUDY.DEL_T_QUN_STUDY(?,?)}");
  // call.setInt(1, 4);
  // call.registerOutParameter(2, Types.INTEGER);
  // call.execute();
  // Integer result = call.getInt(2);
  // System.out.println("执行结果0为正常  -1为不正常" + result);
  /**
   * 使用游标查询 所有的信息
   */
  Connection conn = cdb.getConn();
  /**
   * 得到 存储过程对象
   */
  CallableStatement call = conn
    .prepareCall("{call QUN_STUDY.QUERY_ALL_INFO(?,?)}");
  /**
   * 注册 整型
   */
  call.registerOutParameter(1, Types.INTEGER);
  /**
   * 注册游标类型
   */
  call.registerOutParameter(2, OracleTypes.CURSOR);
  call.execute();
  /**
   * 获取第一个注册的参数
   */
  Integer result = call.getInt(1);
  /**
   * 将游标 类型 转换为 结果集
   */
  ResultSet rs = (ResultSet) call.getObject(2);
  while (rs.next()) {
   System.out.println("id:" + rs.getInt(1));
   System.out.println("name:" + rs.getString(2));
   System.out.println("password:" + rs.getString(3));
  }

}
}

OK  基本就已经搞定了

如果大家有不明白 或者想共同学习的可以加群:2987841

也可以联系我本人QQ:86780004

源代码 (存储过程包 建表SQL JAVA代码)

/Files/xiaohejava/源代码.rar

转载于:https://www.cnblogs.com/xiaohejava/archive/2009/11/22/1608046.html

java调用oracle 存储过程 以及游标使用相关推荐

  1. java调用oracle过程,JAVA调用ORACLE存储过程报错

    当前位置:我的异常网» Java Web开发 » JAVA调用ORACLE存储过程报错 JAVA调用ORACLE存储过程报错 www.myexceptions.net  网友分享于:2015-07-1 ...

  2. java调用oracle存储过程_java调用oracle存储过程详解

    之前给大家介绍了java代码调用存储过程,下面要给大家介绍的就是java当中调用oracle存储过程,一起来看看吧. 首先来看一下项目结构: 在数据库创建存储过程的脚本,假如,使用的是本地的oracl ...

  3. 用java调用oracle存储过程总结

    1.什么是存储过程.存储过程是数据库服务器端的一段程序,它有两种类型.一种类似于SELECT查询,用于检索数据,检索到的数据能够以数据集的形式返回给客户.另一种类似于INSERT或DELETE查询,它 ...

  4. 用java调用oracle存储过程总结二

    这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励. 一:无返回值的存储过程 存 ...

  5. 用java调用oracle存储过程总结一

    1.什么是存储过程.存储过程是数据库服务器端的一段程序,它有两种类型.一种类似于SELECT查询,用于检索数据,检索到的数据能够以数据集的形式返回给客户.另一种类似于INSERT或DELETE查询,它 ...

  6. 转:用java调用oracle存储过程总结(比较好理解)

    这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励. 一:无返回值的存储过程 存 ...

  7. java调用oracle存储过程_做一点,记一点 ~ Java调用Oracle存储过程

    一.需求 传入一个参数,返回一条或多条记录(列表). 二.实现步骤 1. 编写Oracle存储过程. -- 声明包和包体的语句应该分两次执行,即使声明在前定义在后,如果一起执行依然会编译出错 --调用 ...

  8. 用java调用oracle存储过程和函数

    创建测试用表: CREATE TABLE USER (    I_ID   VARCHAR(50) NOT NULL,    I_NAME VARCHAR(50) NOT NULL ); 一:无返回值 ...

  9. java 调用存储过程structdescriptor,Java调用oracle存储过程,集合入参的正确姿势

    这是我工作之前遇到的一个需求,Java调用存储过程,入参是集合.踩了一些坑,决定写个干货,和大家分享下. 项目使用的oracle版本: com.oracle ojdbc6 11.2.0.1.0 sys ...

最新文章

  1. 升维:ValueError: all the input arrays must have same number of dimensions,
  2. 怎么归档老日志的shell脚本
  3. python numpy指定列最大值,统计次数
  4. 推荐一款IDE开发工具插件GitToolBox
  5. {面试题2: 实现 Singleton 模式}
  6. 400分理科学计算机,理科400分能上哪些大学 高考400分算什么水平
  7. java代码顺序执行命令_将小程序安装到Java卡的APDU命令的顺序是什么?
  8. Linux必懂知识大总结(上)
  9. 特殊类型结构--枚举
  10. 【前端学习笔记】微信小程序vue 组件式开发
  11. mmsi是代表船舶什么_海上移动业务识别码(MMSI)是一种九位识别码,主要分配给()在DSC和NBDP通信中相互识别身份是使用。...
  12. workman定时任务队列雏形
  13. echarts 多条折线时数量由多到少更新数据时残留问题
  14. 如何利用免费工具轻松实现个人号裂变?
  15. INE深圳硅谷双线发布演讲实录 | CEOCTO羽睿-去中心化的最后一块版图
  16. 缺少计算机所需的介质程序,安装Win10显示缺少计算机所需的介质驱动程序的解决办法...
  17. Win11 没有磁盘清理工具,如何清理磁盘旧的windows.old文件
  18. javascript取整方法floor、round、ceil
  19. Ansys workbench结构线性静力学分析-简支梁分析
  20. MFC限制鼠标区域、画橡皮条线、任务栏显示图标、核对标记、文档背景色(二)

热门文章

  1. 蔡成功贷款警示:没事别玩高利贷
  2. Source Insight经典教程
  3. function函数的使用
  4. 汇编 begin_【精品】小学作文500字汇编九篇
  5. java实现加减乘除运算符随机生成十道题并判断对错_简单小程序——产生三十道小学四则运算题目...
  6. u盘 linux centos 5.3,鸟哥linux私房菜学习笔记,U盘安装centos5.3不能正常进入图形界面的问题...
  7. python多线程写日志_python 应用logging多线程写多个log文件
  8. ping网关丢包_网络/摄像机丢包的原因分析
  9. imp oracle full,Oracle 10g imp 之 full database (转官档)
  10. XCode7 创建framework