将 MyBatis 与 Oracle XMLType 函数“existsNode()”结合使用

发布于 2024-12-11 18:33:36 字数 512 浏览 0 评论 0原文

我有以下情况。 这是我的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

z祗昰~ 2024-12-18 18:33:36

这是可能的。你不应该编写 ?到你的 MyBatis xml 中。 MyBatis 对于动态 sql 有特殊的语言,我建议阅读 MyBatis 3 用户指南

更改你的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 标记。

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,

<select id="select" parameterType="String" resultMap="urlList">
    select 
                x.t002_id
    from
                 t002_metadata x  
    where
        existsNode(x.t002_xml, #{id}) = 1;
</select>

It might not be #{id}, it depends on how you call select from Mybatis. For example, you might be using the @Param tag.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文