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>

 

 

 

评论 2 您还未登录,请先 登录 后发表或查看评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

lylyxxg

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值