话就不多说。直接看代码吧;自己理解记录,不是很恰当。
欢迎拍砖!!!
<!-- 自定一个map容器,跟存储过程中输入变量一致 -->
<parameterMap class="hashmap" id="tableTempl">
<!-- 指定传入参数的java类型和jdbc类型 mode="IN" 表示输入;"OUT":输出参数-->
<parameter property="TEMP_TIME" jdbcType="VARCHAR"
javaType="string" mode="IN" />
<parameter property="TEMP_ID" jdbcType="VARCHAR"
javaType="string" mode="IN" />
<parameter property="TEMP_NAME" jdbcType="VARCHAR"
javaType="string" mode="IN" />
<parameter property="TEMP_REMARK" jdbcType="VARCHAR"
javaType="string" mode="IN" />
</parameterMap>
<!-- 自定一个sqlmap-ID parameterMap指定为上面定义的map(重要)-->
<procedure id="SP_SysClientBaseTempTable" parameterMap="tableTempl">
<!-- <![CDATA[ 语句 ]]> 其中:<![CDATA[ ]]> 最好不要换行-->
<![CDATA[{call sp_client_base_template(?,?,?,?)}]]>
</procedure>
<parameterMap class="hashmap" id="tableColTempl">
<parameter property="TEMP_ITEM" jdbcType="VARCHAR"
javaType="string" mode="IN" />
<parameter property="TEMP_ID" jdbcType="VARCHAR"
javaType="string" mode="IN" />
<parameter property="TEMP_ITEM_NA" jdbcType="VARCHAR"
javaType="string" mode="IN" />
<parameter property="TEMP_TIME_DEC" jdbcType="VARCHAR"
javaType="string" mode="IN" />
</parameterMap>
<procedure id="SP_SysClientBaseTempTableCol" parameterMap="tableColTempl">
<![CDATA[{call sp_client_base_template_col(?,?,?,?)}]]>
</procedure>
配置完毕后,看java代码;
basedao为自定义dao操作接口;以spring注入了sqlMapClient(org.springframework.orm.ibatis.SqlMapClientFactoryBean)
//tabDataMap 对应 sqlmap配置中的 tableTempl
basedao.queryForObject("client_core_common.SP_SysClientBaseTempTable",
tabDataMap);
//tabColMap 对应 sqlmap配置中的 tableColTempl
HashMap tabColMap = (HashMap)tabColList.get(i);
basedao.queryForObject("client_core_common.SP_SysClientBaseTempTableCol",
tabColMap);
以上map集合中的tabDataMap 和 tabColMap
内容为:
tabDataMap = [{"TEMP_TIME":"2011-10-10 16:59:45","TEMP_NAME":"公文交 换","TEMP_REMARK":"123123","TEMP_ID":"201191165945703"}]
tabColMap = [{"TEMP_TIME_DEC":"正文","TEMP_ITEM_NA":"正文","TEMP_ID":"201191165945703","TEMP_ITEM":"DOC_TEXT"},{"TEMP_TIME_DEC":"附件字段15","TEMP_ITEM_NA":"附件字段15","TEMP_ID":"201191165945703","TEMP_ITEM":"ADDITIONAL10"},{"TEMP_TIME_DEC":"附件字段9","TEMP_ITEM_NA":"附件字段9"}]
结束!按照以上配置保你ibatis配置存储过程没有问题。