我有以下情况。 这是我的mybatis sql语句:
<select id="select" parameterType="String" resultMap="urlList">
select
x.t002_id
from
t002_metadata x
where
existsNode(x.t002_xml, ?) = 1;
</select>
所以当我从包装器类调用select方法并使用xpath表达式设置string参数时,会出现以下错误消息:
Missing IN or OUT parameter at index:: 1
mybatis不可能使用oracle中的existNode方法编写预处理语句吗?
提前感谢!
答案 0 :(得分:0)
有可能。你不应该编码?进入你的MyBatis xml。 MyBatis有动态sql的特殊语言,我建议阅读MyBatis 3 User Guide。
更改您的sql地图,
<select id="select" parameterType="String" resultMap="urlList">
select
x.t002_id
from
t002_metadata x
where
existsNode(x.t002_xml, #{id}) = 1;
</select>
它可能不是#{id},这取决于你如何从Mybatis调用select。例如,您可能正在使用@Param标记。