将 MyBatis 与 Oracle XMLType 函数“existsNode()”结合使用
我有以下情况。 这是我的 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 表达式设置字符串参数时,会显示以下错误消息:
Missing IN or OUT parameter at index:: 1
Is it not possible for mybatis to make a prepared statements with exitNode甲骨文的方法??
提前致谢!
i have following situation.
this is my mybatis sql statement:
<select id="select" parameterType="String" resultMap="urlList">
select
x.t002_id
from
t002_metadata x
where
existsNode(x.t002_xml, ?) = 1;
</select>
so when i'm calling the select method from the wrapper class and set the string parameter with a xpath expression, the following error message shows up:
Missing IN or OUT parameter at index:: 1
Is it not possible for mybatis to make a prepared statement with existNode method from oracle??
thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是可能的。你不应该编写 ?到你的 MyBatis xml 中。 MyBatis 对于动态 sql 有特殊的语言,我建议阅读 MyBatis 3 用户指南。
更改你的sql映射,
它可能不是#{id},这取决于你如何从Mybatis中调用select。例如,您可能正在使用@Param 标记。
It is possible. You shouldn't code the ? into your MyBatis xml. MyBatis has special language for dynamic sql, I suggest reading the MyBatis 3 User Guide.
Change your sql map,
It might not be #{id}, it depends on how you call select from Mybatis. For example, you might be using the @Param tag.