如何使用Mybatis使用oracle merge语句?

时间:2013-10-25 15:23:21

标签: oracle merge tags mybatis

我看不到任何mapper(mybatis-3-mapper.dtd),我可以在mybatis中调用合并语句。

我看到了更新,插入,删除和SQL的标签

任何人都建议如何在Mybatis中使用oracle merge语句。

2 个答案:

答案 0 :(得分:5)

按以下方式调用合并: -

<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>

答案 1 :(得分:1)

我建议您使用存储过程,但您也可以尝试将代码粘贴到<update>代码中。

在数据库中定义程序后,只需按this example即可轻松调用MyBatis中的存储过程。

请注意,如果您的过程未返回任何参数,则过程调用应位于<update>标记中(而不是<select>,如示例所示)。