如何在 ibatis 中传递的数据调用函数
Posted
技术标签:
【中文标题】如何在 ibatis 中传递的数据调用函数【英文标题】:How to call function over data being passed in ibatis 【发布时间】:2011-04-11 11:40:07 【问题描述】:我需要调用一个内部函数,比如“calculateValue(value)”,它会根据传递的值返回一些字符串。
<select id="calculateValue" resultClass="java.lang.String" parameterClass="java.lang.String">
SELECT calculateValue(#value#) FROM SYSIBM.SYSDUMMY1
</select>
上面的查询返回下面的错误。
com.ibatis.common.jdbc.exception.NestedSQLException: --- 错误发生在 mymapsql.xml。 --- 执行查询时发生错误。 --- 检查 SELECT calculateValue(?) FROM SYSIBM.SYSDUMMY1 . --- 检查 SQL 语句(准备失败)。 --- 原因:java.sql.SQLException: [SQL0418] 参数标记的使用无效。
如何在作为参数传递的值上调用函数calculateValue()?
【问题讨论】:
【参考方案1】:使用过程标签<procedure>
调用存储过程。
<procedure id="procId" resultClass="ResultClass"
parameterMap="getMap">
call getResult( #param# )
</procedure>
【讨论】:
【参考方案2】:我首先使用选择标记调用存储过程“calculateValue()”是错误的。我现在为此使用过程标记
【讨论】:
以上是关于如何在 ibatis 中传递的数据调用函数的主要内容,如果未能解决你的问题,请参考以下文章