mybatis调存储过程返回输出参数

来源:互联网 发布:科勒橱柜 知乎 编辑:程序博客网 时间:2024/06/05 07:01

过程:

---------------------

create or replace
PROCEDURE PRO_RETURE_CURSOR(modelid varchar2,CUR OUT varchar2)
AS
BEGIN
CUR := 'SELECT * FROM TA_AREA t'||modelid;
END;

----------------------

mybatis配置

-----------------

  <resultMap type ="java.util.Map" id="cursorMap"><!--配置返回游标中别名对应的resultMap -->  
     <result column ="id" property="id" />  
     <result column ="field1" property="field1"  />  
     <result column ="field2" property="field2" />  
</resultMap > 


 <select id="callReturnArgs" statementType="CALLABLE" parameterType="java.util.Map">
    <!-- 这个是测试用的  获取返回参数-->
    {call PRO_RETURE_CURSOR(#{modelid,jdbcType=VARCHAR,mode=IN},
    #{CUR,mode=OUT,jdbcType=VARCHAR})}    
 </select>


java 代码:

------------------------

/**

* @author:zhu.chunsen
* @Description:测试方法 :获取返回的参数,,注意,与返回的游标是不一样的
* @time:2017年1月12日 下午3:21:42
* @param :
* @return:
*/
public void callRetunArgs(){
   HashMap<String,Object> statMap = new HashMap<String,Object>();  
      /*设定游标结果写入的变量*/  
    
     statMap.put("modelid", "45");
     statMap.put("CUR", "");
     
     /*获取返回的游标结果集*/  
    
try{
 attemperGameDao.callReturnArgs(statMap);//调用存储过程

     String rs  = (String) statMap.put("CUR", "");
     
     System.out.println(rs);

}catch(Exception e){
e.printStackTrace();
}
    
}

-----------------------


在比对项目中,经常要调用存储过程,有以下几种情况

1:只要传入in 输入参数就可以了,

2:要传入in输入参数,返回out参数:==》本文就是这种

3:要传入in输入参数,返回out参数,还要返回游标cursor(结果集)

0 0
原创粉丝点击