存储过程的参数:
P_SAVEOBJ(
IN I_ID_OBJ INT,
IN STR_OBJNAME VARCHAR(255),
OUT o_ret VARCHAR(100)
)
xml配置:
<parameterMap class="java.util.Map" id="seqNameParameters">
<parameter property="I_ID_OBJ" javaType="java.lang.Long" jdbcType="NUMBER" mode="IN"/>
<parameter property="STR_OBJNAME" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN"/>
<parameter property="o_retsult" javaType="java.lang.String" jdbcType="VARCHAR" mode="OUT"/>
</parameterMap>
<procedure id="saveObjByProcedure" parameterMap="seqNameParameters">
{call P_SAVEOBJ(?, ?, ?)}
</procedure>
java调用:
HashMap<String,Object> paramMap = new HashMap<String,Object>();
paramMap.put("I_ID_OBJ",jobId);//INT;1
paramMap.put("STR_OBJNAME",jobName);//VARCHAR(255);2
paramMap.put("o_retsult","");//VARCHAR(255);3
this.getSqlMapClientTemplate().update("saveObjByProcedure", paramMap);
return paramMap.get("o_retsult")
这里用的是update,因为发现使用query的时候会阻塞住。
this.getSqlMapClientTemplate().update("saveObjByProcedure", paramMap);