我看不到任何可以在 mybatis 中调用合并语句的映射器(mybatis-3-mapper.dtd)。
我看到了更新、插入、删除和 SQL 的标签
任何人请建议如何在 Mybatis 中使用 oracle 合并语句。
如下调用合并:-
<update id="exceMerge" parameterType="hashmap">
MERGE INTO USERS U USING DUAL ON (U.PROPERTY_NAME=#{prop_name})
WHEN MATCHED THEN
UPDATE SET U.PROPERTYVALUE=#{prop_value}, U.MESSAGE=#{message,javaType=String,jdbcType=CLOB}
WHEN NOT MATCHED THEN
INSERT(PROPERTY_NAME, PROPERTYVALUE, MESSAGE) VALUES (#{prop_name},#{prop_value},#{message,javaType=String,jdbcType=CLOB})
</update>
我建议使用存储过程,尽管您也可以尝试将代码粘贴到<update>
标签中。
在 MyBatis 中调用存储过程很容易,在你的数据库中定义一个过程之后,只需按照这个例子。
请注意,如果您的过程不返回任何参数,则过程调用应该在<update>
标记中(而不是<select>
,如示例)。