springboot2.0 + myBatis 调用SQL 存储过程
1、 写在前面
最近项目需要,公司大佬写了一个很流弊的存储过程,第一次调用记录一下!
2、代码
存储过程:
-- in/out 类型, in是入参 ,out是返回的参数
create or replace procedure P_DEMO
(
V1 IN VARCHAR2, V2 IN VARCHAR2, V3 OUT VARCHAR2, V4 OUT VARCHAR2
) is
mybatis:
<select id="addCubeSqlMap" parameterType="java.util.Map" statementType="CALLABLE" >
{CALL P_DEMO
(#{V1,mode=IN,jdbcType=VARCHAR},
#{V2,mode=IN,jdbcType=VARCHAR},
#{V3,mode=OUT,jdbcType=VARCHAR},
#{V4,mode=OUT,jdbcType=VARCHAR}
)}
</select>
map只需要封装入参(就是mode=in)的就好了
public int addCubeSqlMap(Map<String,String> parm);
调用:
Map<String,String > parm = new HashMap<String,String>();
parm.put("V1","xxx");
parm.put("V2","00");
#todo
your_service.addCubeSqlMap(parm);
//直接get你要传入xml的map get mode=out 的那个参数名就拿到了存储过程给你返回的值
parm.get("V3");
parm.get(" V4");