java调用oracle 存储过程 以及游标使用
打开 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 存储过程 以及游标使用相关推荐
- java调用oracle过程,JAVA调用ORACLE存储过程报错
当前位置:我的异常网» Java Web开发 » JAVA调用ORACLE存储过程报错 JAVA调用ORACLE存储过程报错 www.myexceptions.net 网友分享于:2015-07-1 ...
- java调用oracle存储过程_java调用oracle存储过程详解
之前给大家介绍了java代码调用存储过程,下面要给大家介绍的就是java当中调用oracle存储过程,一起来看看吧. 首先来看一下项目结构: 在数据库创建存储过程的脚本,假如,使用的是本地的oracl ...
- 用java调用oracle存储过程总结
1.什么是存储过程.存储过程是数据库服务器端的一段程序,它有两种类型.一种类似于SELECT查询,用于检索数据,检索到的数据能够以数据集的形式返回给客户.另一种类似于INSERT或DELETE查询,它 ...
- 用java调用oracle存储过程总结二
这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励. 一:无返回值的存储过程 存 ...
- 用java调用oracle存储过程总结一
1.什么是存储过程.存储过程是数据库服务器端的一段程序,它有两种类型.一种类似于SELECT查询,用于检索数据,检索到的数据能够以数据集的形式返回给客户.另一种类似于INSERT或DELETE查询,它 ...
- 转:用java调用oracle存储过程总结(比较好理解)
这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励. 一:无返回值的存储过程 存 ...
- java调用oracle存储过程_做一点,记一点 ~ Java调用Oracle存储过程
一.需求 传入一个参数,返回一条或多条记录(列表). 二.实现步骤 1. 编写Oracle存储过程. -- 声明包和包体的语句应该分两次执行,即使声明在前定义在后,如果一起执行依然会编译出错 --调用 ...
- 用java调用oracle存储过程和函数
创建测试用表: CREATE TABLE USER ( I_ID VARCHAR(50) NOT NULL, I_NAME VARCHAR(50) NOT NULL ); 一:无返回值 ...
- java 调用存储过程structdescriptor,Java调用oracle存储过程,集合入参的正确姿势
这是我工作之前遇到的一个需求,Java调用存储过程,入参是集合.踩了一些坑,决定写个干货,和大家分享下. 项目使用的oracle版本: com.oracle ojdbc6 11.2.0.1.0 sys ...
最新文章
- 升维:ValueError: all the input arrays must have same number of dimensions,
- 怎么归档老日志的shell脚本
- python numpy指定列最大值,统计次数
- 推荐一款IDE开发工具插件GitToolBox
- {面试题2: 实现 Singleton 模式}
- 400分理科学计算机,理科400分能上哪些大学 高考400分算什么水平
- java代码顺序执行命令_将小程序安装到Java卡的APDU命令的顺序是什么?
- Linux必懂知识大总结(上)
- 特殊类型结构--枚举
- 【前端学习笔记】微信小程序vue 组件式开发
- mmsi是代表船舶什么_海上移动业务识别码(MMSI)是一种九位识别码,主要分配给()在DSC和NBDP通信中相互识别身份是使用。...
- workman定时任务队列雏形
- echarts 多条折线时数量由多到少更新数据时残留问题
- 如何利用免费工具轻松实现个人号裂变?
- INE深圳硅谷双线发布演讲实录 | CEOCTO羽睿-去中心化的最后一块版图
- 缺少计算机所需的介质程序,安装Win10显示缺少计算机所需的介质驱动程序的解决办法...
- Win11 没有磁盘清理工具,如何清理磁盘旧的windows.old文件
- javascript取整方法floor、round、ceil
- Ansys workbench结构线性静力学分析-简支梁分析
- MFC限制鼠标区域、画橡皮条线、任务栏显示图标、核对标记、文档背景色(二)
热门文章
- 蔡成功贷款警示:没事别玩高利贷
- Source Insight经典教程
- function函数的使用
- 汇编 begin_【精品】小学作文500字汇编九篇
- java实现加减乘除运算符随机生成十道题并判断对错_简单小程序——产生三十道小学四则运算题目...
- u盘 linux centos 5.3,鸟哥linux私房菜学习笔记,U盘安装centos5.3不能正常进入图形界面的问题...
- python多线程写日志_python 应用logging多线程写多个log文件
- ping网关丢包_网络/摄像机丢包的原因分析
- imp oracle full,Oracle 10g imp 之 full database (转官档)
- XCode7 创建framework