通过mybatis调用存储过程。输入参数、输出参数均为CLOB类型。输出后需对CLOB进行转化。直接上代码:
通过map传参:
Map<String, Object> paramMap = new HashMap<>(); paramMap.put("p_message", context.toJSONString()); paramMap.put("x_resp_msg", null); //调用存储过程 CallMapper.callInfo(paramMap); //对CLOB进行处理 Clob clob=(Clob)paramMap.get("x_resp_msg"); String result= (clob != null ? clob.getSubString(1, (int) clob.length()) :""); JSONObject jsonObject=JSONObject.parseObject(result);
<select id="callInfo" parameterType="java.util.Map" statementType="CALLABLE"> {call xxx(#{bean.x_resp_msg,mode=OUT,jdbcType=CLOB},#{bean.p_message,mode=IN,jdbcType=CLOB})} </select>