java调用Oracle存储过程的方法实例

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();
        }
    }

(0)

相关推荐

  • java调用oracle分页存储过程示例

    1.分页类 复制代码 代码如下: package org.zh.basic; /** * 页面类 *  * @author keven *  */public class PageInfo { // 定义    private String p_tableName; // -表名    private String p_strWhere; // --查询条件    private String p_orderColumn; // --排序的列    private String p_orderS

  • Java下使用Oracle存储过程(详解)第1/3页

    任何转载,请尊重版权.(作者:iihero on csdn) 一.如何创建java存储过程? 通常有三种方法来创建java存储过程. 1. 使用oracle的sql语句来创建: e.g. 使用create or replace and compile java source named "<name>" as 后边跟上java源程序.要求类的方法必须是public static的,才能用于存储过程. 复制代码 代码如下: SQL> create or replace

  • Java调用Oracle存储过程详解

    Java调用Oracle存储过程详解 步骤: 1.编写Oracle存储过程 2.编写数据库获取连接工具类 3.编写简单应用调用存储过程 实现: 1.Oracle存储过程: /*测试表*/ create table test( id varchar2(32), name varchar2(32) ); /*存储过程 插入数据*/ CREATE OR REPLACE PROCEDURE insert_procedure( PARA1 IN VARCHAR2, PARA2 IN VARCHAR2 )

  • java调用Oracle存储过程的方法实例

    1.测试添加数据的procedure 复制代码 代码如下: public void testProcedure() {        Connection con = getConnction(); // **1.测试添加数据的procedure          String procedure = "{call users_insert_proc(?,?,?,?) }"; CallableStatement cs = null;        try {             c

  • Mybatis调用Oracle存储过程的方法图文详解

    1:调用无参数的存储过程. 创建存储过程: Mapper.xml 配置:经测试其他标签(update.insert.select)也可以. Mapper.java MapperTest.java 测试 2:有参数的存储过程调用: 2.1存储过程的创建: 2.2Mapper.xml 的配置: 2.3Mapper.java 2.4MapperTest.java 测试 控制台输出: 3:存储过程的结果集调用. 3.1创建存储过程: 3.2 Mapper.xml 配置 配置 resultMap结果集字段

  • Python使用cx_Oracle调用Oracle存储过程的方法示例

    本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法.分享给大家供大家参考,具体如下: 这里主要测试在Python中通过cx_Oracle调用PL/SQL. 首先,在数据库端创建简单的存储过程. create or replace procedure test_msg(i_user in varchar2, o_msg out varchar2) is begin o_msg := i_user ||', Good Morning!'; end; 然后,开始在Pytho

  • C#调用Oracle存储过程的方法

    本文实例讲述了C#调用Oracle存储过程的方法.分享给大家供大家参考.具体实现方法如下: Oracle数据库代码如下: 复制代码 代码如下: create or replace procedure proce_test(paramin in varchar2,paramout out varchar2,paraminout in out varchar2) as   varparam varchar2(28); begin   varparam:=paramin;   paramout:=va

  • asp.net中调用oracle存储过程的方法

    存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它. 存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程. 不多说了,本文通过两种方法介绍asp.net中调用oracle存储过程的方法,具体内容请看下面代码. 调用oracle存储过程方法一: ORACLE代码 CREATE OR REP

  • 用PHP调用Oracle存储过程的方法

    但是使用存储过程至少有两个最明显的优点:速度和效率.使用存储过程的速度显然更快.在效率上,如果应用一次需要做一系列sql操作,则需要往返于php与oracle,不如把该应用直接放到数据库方以减少往返次数,增加效率.但是在internet应用上,速度是极度重要的,所以很有必要使用存储过程.偶也是使用php调用存储过程不久,做了下面这个列子. 代码 复制代码 代码如下: //建立一个test表 create table test ( id number(16) not null, name varc

  • java调用mysql存储过程实例分析

    本文实例讲述了java调用mysql存储过程的方法.分享给大家供大家参考.具体如下: 数据库的测试代码如下 : 1.新建表test create table test( field1 int not null ) TYPE=MyISAM ; insert into test(field1) values(1); 2.删除已存在的存储过程: -- 删除储存过程 delimiter // -- 定义结束符号 drop procedure p_test; 3.mysql存储过程定义: create p

  • Mybatis传list参数调用oracle存储过程的解决方法

    怎么利用MyBatis传List类型参数到数据库存储过程中实现批量插入数据? MyBatis中参数是List类型时怎么处理?大家都知道MyBatis批处理大量数据是很难做到事务回滚的(事务由Spring管理),都将逻辑写在存储中又是及其头疼的一件事(参数长度也有限制),那么我想的是将参数在后台封装为单个或多个list集合,直接通过MyBatis将此参数传到数据库存储过程中,一来摆脱了MyBatis批量插入数据的诸多限制(例如:不能实时返回主键.foreach标签循环集合长度有限制),二来就是在存

  • Java调用MySQL存储过程并获得返回值的方法

    本文实例讲述了Java调用MySQL存储过程并获得返回值的方法.分享给大家供大家参考.具体如下: private void empsInDept(Connection myConnect, int deptId) throws SQLException { CallableStatement cStmt = myConnect.prepareCall("{CALL sp_emps_in_dept(?)}"); cStmt.setInt(1, deptId); cStmt.execute

随机推荐