使用iBatis调用存储过程,无法检索OUT参数

时间:2016-08-09 09:02:32

标签: java stored-procedures ibatis

我有以下程序以避免重复插入:

create or replace
PROCEDURE spCheckDuplicate
(in_price IN VARCHAR2(20),             
in_drug IN  VARCHAR2(20),          ,
out_count OUT NUMBER)
IS
BEGIN
out_count :=0;
    BEGIN
        SELECT count(*) into out_count
        FROM DRUG_TABLE where DRUGNAME=in_drug and PRICE=in_price ;
    EXCEPTION
          WHEN NO_DATA_FOUND THEN
            out_count := 0;
    END;



IF (out_count = 0)
     THEN
    INSERT INTO DRUG_TABLE(DRUGNAME,PRICE)
    VALUES(in_drug,in_price )
  END;
  END IF;


END ;

我需要从我的j2ee应用程序调用此存储过程,使用iBatis,我无法检索存储过程返回的out参数(返回药物+价格组合的数量)。

**Ibatis xml**


       <procedure id="avoidDuplicateInsert" 
                          parameterClass="DrugVO" resultClass="DrugVO">
               { call spCheckDuplicate( #price#,#drug#,#count#)}
        </procedure> 

这不起作用,无法计算。虽然类似的程序只适用于IN参数。

**JavaDAO class**

result  = (DrugVO) this.queryForObject("avoidDuplicateInsert",DrugVO);
    System.out.println("result count" + result.getCount());

我在这里得到一个nullpointer

0 个答案:

没有答案