Mybatis 调用存储过程,使用Map进行输入输出参数的传递

做个记录,以备后用

 

java代码:

public String texuChange() throws Exception {
        try {
            
            Map<String, Object> map = new HashMap<String, Object>();
            
            if(texu != null){
                
                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                Map<String, Object> parameterMap = new HashMap<String, Object>();
                
                if(texu.getFlag() == 0){
                    parameterMap.put("v_tz_flg", 0);
                }else if(texu.getFlag() == 1){
                    parameterMap.put("v_tz_flg", 1);
                }else{
                    parameterMap.put("v_tz_flg", 2);
                };
                if(texu.getStart() != null&&texu.getEnd() != null){
                    parameterMap.put("v_tz_qujian_start", formatter.format(texu.getStart()));
                    parameterMap.put("v_tz_qujian_end", formatter.format(texu.getEnd()));
                }else{
                    parameterMap.put("v_tz_qujian_start", null);
                    parameterMap.put("v_tz_qujian_end", null);
                }
                parameterMap.put("v_baoliu_p", texu.getBaoliup());
                parameterMap.put("v_max_p", texu.getPingxianbl());
                parameterMap.put("v_stop_run", texu.getStoprun());
                
                //调用存储过程
                pingbiService.texuChange(parameterMap);
                map.put("p_result", parameterMap.get("p_result"));
            }
            responseSuccessJson(map, "", "common.list.success");
        } catch(ServiceException ex) {
            log.warn("input fail.", ex);
            responseServiceErrorJson(getCommonInputErrorInfo(null, ex.getErrorCode()));
        } catch(Exception e) {
            log.error("input error.", e);
            responseSystemErrorJson(getCommonErrorInfo());
        }
        
        return null;
    }

 

  public String texuChange(Map<String, Object> parameterMap) {
        return pingbiDao.texuChange(parameterMap);
     }

 

配置文件mapper

<parameterMap type="java.util.Map" id="texuChangeMap">    
       <parameter property="v_tz_flg" jdbcType="INTEGER" mode="IN"/>
       <parameter property="v_tz_qujian_start" jdbcType="DATE" mode="IN"/>      
       <parameter property="v_tz_qujian_end" jdbcType="DATE" mode="IN"/>    
       <parameter property="v_baoliu_p" jdbcType="INTEGER" mode="IN"/>    
       <parameter property="v_max_p" jdbcType="INTEGER" mode="IN"/>    
       <parameter property="v_stop_run" jdbcType="INTEGER" mode="IN"/>    
       <parameter property="p_result" jdbcType="VARCHAR" mode="OUT"/>    

</parameterMap> 

 

<select id="texuChange" parameterMap="texuChangeMap" statementType="CALLABLE" resultType="String">  
      {call pl_texu(  
        ?,?,?,?,?,?,?
      )}

</select>

 

posted @ 2017-08-04 17:06  yunxu  阅读(5444)  评论(0编辑  收藏  举报