springboot+mybatis3.4 调用存储过程 执行多条SQL

1.创建Mapper接口类

public interface TCustomerOrgTempMapper {
    /**
     * 存储过程更新
     *
     * @param map
     * @return
     */
    Map<String,String> callProceUpdate(Map<String, String> map);
}

 

2.mybatis sql文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.caitc.ecif.custinfo.dao.TCustomerOrgTempMapper" >
      <select id="callProceUpdate" parameterType="java.util.HashMap"     
                               statementType="CALLABLE" resultType="java.util.HashMap">  
       <![CDATA[  
	    {call P_E_UPDATE_CUST_INFO_U(
	    #{custNo,mode=IN,jdbcType=VARCHAR},
	    #{id,mode=IN,jdbcType=VARCHAR},
	    #{status,mode=OUT,jdbcType=VARCHAR}
	    )} 
  	   ]]>
  </select>
</mapper>

3.调存储过程,存储过程返回的值在传入的map里可以获取

CustomerOrgExtendVo customerOrgExtendVo = custCnVo.getCustOrgExtendVo();
String customerOrgExtendJson = JSON.toJSONString(customerOrgExtendVo);
String id = StringUtil.UUID32();
TCustomerOrgTemp tCustomerOrgTemp = ClassToolUtil.arrayJsonToObj(new String[]
         {customerOrgExtendJson,custVoJson},TCustomerOrgTemp.class);
            tCustomerOrgTemp.setId(id);
            tCustomerOrgTempMapper.insert(tCustomerOrgTemp);
            Map<String, String> params = new HashMap<String, String>(5);
            params.put("id", id);
            params.put("custNo", custNo);
            tCustomerOrgTempMapper.callProceUpdate(params);
            if("false".equals(params.get("status"))){
            	ResultVo resultVo = new ResultVo();
                resultVo.setStatus(false);
                resultVo.setMessage("E10000009");
                return resultVo;
            }

4.mybatis执行多条sql

<insert id="custJoin">
  		begin
  		insert into tableA(join_serial, cust_no, old_cust_no, status, join_time, join_user)
		values(#{params.join_id}, #{params.custNo}, #{params.suspectedCustNo}, '0', sysdate, #{params.createUser});
		insert into tableB (join_id, join_cust_no, cust_no, cust_name, en_name, customer_type, id_type, id_number, contact_way, country_code, 
			select #{params.join_id},#{params.custNo},cust_no, cust_name, en_name, customer_type, id_type, id_number, contact_way, country_code, 
			from tableC where cust_no=#{params.suspectedCustNo};
		delete from e_basic_info where cust_no = #{params.suspectedCustNo};
		 	           
		end;
  </insert>

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值