数据库表和增删改的procedure参照(http://www.cnblogs.com/J-wym/p/3292913.html)

1.测试添加数据的procedure

public void testProcedure() {
Connection con = getConnction(); // **1.测试添加数据的procedure
String procedure = "{call users_insert_proc(?,?,?,?) }"; CallableStatement cs = null;
try {
cs = con.prepareCall(procedure);
cs.setInt(1, 123450);
cs.setString(2, "xxiaox");
cs.setString(3, "Ww342864");
cs.setString(4, "742621646@qq.com");
} catch (SQLException e) {
e.printStackTrace();
}
try {
cs.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
 
 

2.测试删除数据的procedure

public void testDelPro() {
Connection con = getConnction(); // **2.测试删除数据的procedure
String procedure = "{call delete_usersbyid_proc(?) }"; CallableStatement cs = null;
try {
cs = con.prepareCall(procedure);
cs.setInt(1, 123450);
} catch (SQLException e) {
e.printStackTrace();
}
try {
cs.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}

3.测试更新数据的procedure

public void testDelPro() {
Connection con = getConnction(); // **3.测试更新数据的procedure
String procedure = "{call users_updatebyId_proc(?,?,?,?) }"; CallableStatement cs = null;
try {
cs = con.prepareCall(procedure);
cs.setInt(1, 101);
         cs.setString(2, "小第三方的浩"); 
         cs.setString(3, "asdf342864");
         cs.setString(4, "742621646@qq.com");
} catch (SQLException e) {
e.printStackTrace();
}
try {
cs.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}

4.测试查找数据的procedure

a)建包体

b)创建查询的procedure

create or replace package userspackage as
type users_cursor is ref cursor;
end userspackage;
create or replace procedure users_packageAll(
s_id in number ,u_cursor out userspackage.users_cursor) is
begin
if s_id = 0 then
open u_cursor for select id,name,pword,email from users;
else
open u_cursor for select id,name,pword,email from users where id=s_id;
end if; end;

c)Java调用

public void testDelPro() {
Connection con = getConnction(); // 返回查询procedure
String procedure = "{call users_packageAll(?,?) }"; CallableStatement cs = null;
try {
cs = con.prepareCall(procedure);
cs.setInt(1, 0);
cs.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR); } catch (SQLException e) {
e.printStackTrace();
}
try {
cs.execute();
ResultSet rs = (ResultSet)cs.getObject(2);
while (rs.next()) {
System.out.println(rs.getInt(1) + " " + rs.getString(2));
}
} catch (SQLException e) {
e.printStackTrace();
}
}

java调用Oracle存储存储过程的更多相关文章

  1. Java调用Oracle存储Package

    Oracle的包Package中可以有很多存储,可通过该包的总调入口在java中直接调用. //java调用oracle的package代码 public boolean cal() throws j ...

  2. java调用Oracle分页存储过程

    Java程序 package com.test; import java.sql.CallableStatement; import java.sql.Connection; import java. ...

  3. java 调用oracle 分页存储过程 返回游标数据集

    1.分页类 package org.zh.basic; /** * 页面类 * * @author keven * */ public class PageInfo { // 定义 private S ...

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

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

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

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

  6. java下实现调用oracle的存储过程和函数

    在Oracle下创建一个test的账户,然后 1.创建表:STOCK_PRICES --创建表格 CREATE TABLE STOCK_PRICES( RIC VARCHAR() PRIMARY KE ...

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

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

  8. 【学习】java下实现调用oracle的存储过程和函数

    在oracle下创建一个test的账户,然后按一下步骤执行: 1.创建表:STOCK_PRICES --创建表格CREATETABLE STOCK_PRICES( RIC VARCHAR(6) PRI ...

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

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

随机推荐

  1. JAVA简单Swing图形界面应用演示样例

    JAVA简单Swing图形界面应用演示样例 package org.rui.hello; import javax.swing.JFrame; /** * 简单的swing窗体 * @author l ...

  2. Codeforces 461B Appleman and Tree(木dp)

    题目链接:Codeforces 461B Appleman and Tree 题目大意:一棵树,以0节点为根节点,给定每一个节点的父亲节点,以及每一个点的颜色(0表示白色,1表示黑色),切断这棵树的k ...

  3. POJ 3255 Roadblocks (次级短路问题)

    解决方案有许多美丽的地方.让我们跳回到到达终点跳回(例如有两点)....无论如何,这不是最短路,但它并不重要.算法能给出正确的结果 思考:而最短的路到同一点例程.spfa先正达恳求一次,求的最短路径的 ...

  4. STL容器存储的内容动态分配情况下的内存管理

    主要分两种情况:存储的内容是指针:存储的内容是实际对象. 看以下两段代码, typedef pair<VirObjTYPE, std::list<CheckID>*> VirO ...

  5. SQL data reader reading data performance test

    /*Author: Jiangong SUN*/ As I've manipulated a lot of data using SQL data reader in recent project. ...

  6. Mvc 6 中创建 Web Api

    如何在Mvc 6 中创建 Web Api以及如何脱离IIS实现自我托管 微软推出的Asp.net vNext(asp.net 5.0)的其中的一个目标就是统一mvc 和web api 的框架.接下来我 ...

  7. POJ 3654 &amp; ZOJ 2936 &amp; HDU 2723 Electronic Document Security(模拟)

    题目链接: PKU:http://poj.org/problem?id=3654 ZJU:http://acm.zju.edu.cn/onlinejudge/showProblem.do?proble ...

  8. table居中方法之一:设置width,然后为style设置margin:auto

    比如: <table width="800px" style="margin:auto;">

  9. JS中通过call方法实现继承

    原文:JS中通过call方法实现继承 讲解都写在注释里面了,有不对的地方请拍砖,谢谢! <html xmlns="http://www.w3.org/1999/xhtml"& ...

  10. 单极型ADC如何测量负电压?

    最常用的方法是使用一个运放做成加法器将负电压抬到0V以上,如果这样的输出超过了最大输出电压那么再使用比例衰减就可以办到了. 参考下面的讨论: http://www.amobbs.com/thread- ...