1、创建添加存储过程

CREATEORREPLACEPROCEDURE stu_proc(v_id INNUMBER, v_name INVARCHAR2, v_age INNUMBER) AS
BEGIN
INSERTINTO student(id, sname, age) values (v_id, v_name, v_age);
commit;
END;

JAVA调用添加存储过程


package com.ljq.test;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException; publicclass ProceTest { public static void main(String[] args) throws Exception {
Connection conn =null;
CallableStatement statement =null;
String sql ="{call stu_proc(?, ?, ?)}";
try {
conn = ConnUtils.getConnection();
statement = conn.prepareCall(sql);
statement.setInt(, );
statement.setString(, "laoli");
statement.setInt(, );
//如果第一个结果是ResultSet对象,则返回true;如果第一个结果是更新、添加、修改或者没有结果,则返回 false
boolean issuccess=statement.execute();
//成功返回true,失败返回false
System.out.println(issuccess);
} catch (SQLException e) {
e.printStackTrace();
} finally {
ConnUtils.free(null, statement, conn);
}
} }

创建删除存储过程语句


CREATEORREPLACEPROCEDURE stu_proc(v_id INNUMBER, v_msg OUT VARCHAR2) IS
v_flag NUMBER:=1;
BEGIN
SELECT o.id INTO v_flag FROM student o WHERE o.id=v_id;
DELETEFROM student o WHERE o.id=v_flag;
commit;
v_msg:='删除成功';
EXCEPTION
WHEN OTHERS THEN v_msg:='删除失败';
END;

java调用删除存储过程


package com.ljq.test;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Types; publicclass ProceTest { public static void main(String[] args) throws Exception {
Connection conn =null;
CallableStatement statement =null;
String sql ="{call stu_proc(?, ?)}";
try {
conn = ConnUtils.getConnection();
statement = conn.prepareCall(sql);
statement.setInt(, );
statement.registerOutParameter(, Types.VARCHAR);
statement.execute();
String msg=statement.getString();
System.out.println(msg);
} catch (SQLException e) {
e.printStackTrace();
} finally {
ConnUtils.free(null, statement, conn);
}
} }

创建修改存储过程


CREATEORREPLACEPROCEDURE stu_proc
(
v_id INNUMBER,
v_name INVARCHAR2,
v_msg OUT VARCHAR2
) AS
v_flag number;
BEGIN
SELECT o.id INTO v_flag FROM student o WHERE o.id=v_id;
UPDATE student o SET o.sname=v_name WHERE o.id=v_id;
commit;
v_msg:='修改成功';
EXCEPTION
WHEN OTHERS THEN v_msg:='修改失败';
END;

java调用修改存储过程


package com.ljq.test;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Types; publicclass ProceTest { public static void main(String[] args) throws Exception {
Connection conn =null;
CallableStatement statement =null;
String sql ="{call stu_proc(?, ?, ?)}";
try {
conn = ConnUtils.getConnection();
statement = conn.prepareCall(sql);
statement.setInt(, );
statement.setString(, "laoli");
statement.registerOutParameter(, Types.VARCHAR);
statement.execute();
String msg=statement.getString();
System.out.println(msg);
} catch (SQLException e) {
e.printStackTrace();
} finally {
ConnUtils.free(null, statement, conn);
}
} }

JAVA调用oracle存储过程实例的更多相关文章

  1. Java调用oracle存储过程通过游标返回临时表数据

    注:本文来源于 <  Java调用oracle存储过程通过游标返回临时表数据   > Java调用oracle存储过程通过游标返回临时表数据 项目开发过程中,不可避免的会用到存储过程返回结 ...

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

    SSM-Mybatis调用Oracle存储过程返回结果集(游标)示例 https://www.jianshu.com/p/0ae6d9d66d61 用java调用oracle存储过程总结 //1.ca ...

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

    //1.call+包名+存储过程名(传入.传出值用?) String str="{call SMSBUSINESS.deleteZhZMember(?,?,?)}"; //2.建立 ...

  4. java基础---->java调用oracle存储过程(转)

    存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.今天 ...

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

    以前一直没有动存储过程是用来干嘛的,后来请教朋友才换为自己的理解方式,用自己通俗的语言来说,就是把sql语句换为一个过程,也可以说是一个方法,每次直接给参数调用就好,使用存储过程查询速度快,系统只编译 ...

  6. java基础---->java调用oracle存储过程

    存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.今天 ...

  7. 160307、Java调用Oracle存储过程返回结果集

    一:无返回值的存储过程调用 存储过程: CREATE OR REPLACE PROCEDURE PRO_1(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2)   AS BEGI ...

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

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

  9. java调用oracle存储过程返回多条结果集

    oracle版本:11g oracle存储过程,使用游标的方式返回多行.多列数据集合: CREATE OR REPLACE PROCEDURE SP_DATA_TEST( /*P_ID IN INT, ...

随机推荐

  1. jsoup获取网页属性

    package com.open1111.jsoup; import org.apache.http.HttpEntity;import org.apache.http.client.methods. ...

  2. SGU 258 Almost Lucky Numbers 接近幸运数(数位DP)

    题意: 定义一个具有2n位的正整数,其前n位之和与后n位之和相等,则为lucky数.给定一个区间,问有多少个正数可以通过修改某一位数从而变成lucky数?注意不能含前导0. 思路: 我的想法是记录那些 ...

  3. python基础教程总结15——3 XML构建网址

    要求: 网址用一个XML文件描述,其中包括独立网页和目录的信息: 程序能创建所需的目录和网页: 可以改变网址的设计,并且以新的设计为基础重新生成所有网页 概念: 网站:不用存储有关网站本身的任何信息, ...

  4. Android(java)学习笔记110:Java中操作文件的类介绍(File + IO流)

    1.File类:对硬盘上的文件和目录进行操作的类.    File类是文件和目录路径名抽象表现形式  构造函数:        1) File(String pathname)       Creat ...

  5. acid (数据库事务正确执行的四个基本要素的缩写)

    ACID,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability).一个支持事务(T ...

  6. mina架构在JT/T808协议应用程序中的应用

    Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP.UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务.虚拟机管道通信服务等),M ...

  7. cocos2dx 3.x lua 网络加载并且保存资源(unix、linux)

    #ifndef __DazzleParkour__TextLoader__ #define __DazzleParkour__TextLoader__ #include <stdio.h> ...

  8. [LUOGU] P2634 [国家集训队]聪聪可可

    点分治裸题,甚至不需要栈回撤. 尝试用容斥写了一波,就是把所有子树混一块计算,最后减去子树内路径条数. #include<iostream> #include<cstring> ...

  9. centos7.4进入单用户模式

    centos7.4进入单用户模式 1 - 在启动grub菜单,选择编辑选项启动 2 - 按键盘e键,来进入编辑界面 3 - 找到Linux 16的那一行,将ro改为rw init=/sysroot/b ...

  10. OC8051项目启动