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

本文介绍了一个Java程序中如何构建参数并调用数据库存储过程的实例。具体包括了根据对象属性设置输入参数,使用SimpleDateFormat进行日期格式化,以及处理不同类型的输入参数等细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做个记录,以备后用

 

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>

 

转载于:https://www.cnblogs.com/yunxu/p/7286109.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值