存储过程调用,java中通过bboss persistent实现数据库存储过程的调用(命名变量绑定)

 通过bboss persistent提供的callable调用接口,可以非常方便地实现数据库存储过程的调用,本博客之前介绍了通过位置变量绑定的方法设置过程参数的方法,本文介绍通过命名变量绑定参数的方法调用存储过程。

 

bboss persistent 下载地址:https://sourceforge.net/project/showfiles.php?group_id=238653&package_id=302766&release_id=647144

 

  • java代码段如下:

import com.frameworkset.common.poolman.CallableDBUtil;

。。。。

CallableDBUtil callableDBUtil = new CallableDBUtil();
  try
  {
   callableDBUtil.prepareCallable("{call test_p(?,?,?,?)}");
   //不允许的操作: Ordinal binding and Named binding cannot be combined!
   callableDBUtil.setInt("id", 10);
   callableDBUtil.registerOutParameter("name", java.sql.Types.VARCHAR);
   callableDBUtil.registerOutParameter("name1", java.sql.Types.VARCHAR);
   callableDBUtil.registerOutParameter("test", java.sql.Types.INTEGER);
   
   callableDBUtil.executeCallable();
   System.out.println("name1:" + callableDBUtil.getString("name"));
   System.out.println("name2:" + callableDBUtil.getString("name1"));
   System.out.println("test:" + callableDBUtil.getInt("test"));
     
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }

    • 存储过程定义如下:

        CREATE OR REPLACE PROCEDURE test_p(id in number,
                name out varchar2
         ,name1 out varchar2,test out number) IS

BEGIN
   --tmpVar := 0;
   name := 'hello name';
   name1 := 'hello name1';
   test := id;
   insert into test(id,name) values(SEQ_TEST.nextval,'name1');
   commit;
  
  
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    NULL;
  WHEN OTHERS THEN
    -- Consider logging the error and then re-raise
    RAISE;
END test_p;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值