使用iBatis进行更新

时间:2011-09-22 16:36:45

标签: ibatis sql-update

我需要更新下表:

TOPICS =其中WORD_ID是外键,它们都是TOPICS的关键。

我想用iBatis查询:

UPDATE TOPICS 
SET TOPIC = #newTopic#
WHERE WORD_ID = #wordId#
AND TOPIC = #oldTopic#;

使用多个参数的方法是什么?不仅仅是字符串??

非常感谢!

3 个答案:

答案 0 :(得分:1)

在java端构建一个HashMap

Map map = new HashMap();

map.add("NewTopic",aNewTopicValue );
map.add("OldTopic",anOldTopicValue );
map.add("WordId",aWordId );

这里的地图值可以是任何类型(字符串或整数等)。

在Ibatis查询中指定parameterClass =“map”。

<update id="mySel" parameterClass="map">
UPDATE TOPICS
SET TOPIC = #NewTopic#
WHERE WORD_ID = #WordId#
AND TOPIC = #OldTopic#
</update>

答案 1 :(得分:1)

您可以指定数据类型以及如下所示的参数

WHERE WORD_ID = #wordId:NUMERIC#

答案 2 :(得分:0)

<parameterMap class="ibatis.util.Entity" id="mySel_map">  
  <parameter property="NewTopic" jdbcType="VARCHAR" />      
  <parameter property="WordId" jdbcType="INT" />  
  <parameter property="OldTopic" jdbcType="VARCHAR" />  
</parameterMap>  

<update id="mySel" parameterMap="mySel_map">
      UPDATE TOPICS
      SET TOPIC = #NewTopic#
      WHERE WORD_ID = #WordId#
      AND TOPIC = #OldTopic#
</update>

参考上面的代码。我们可以使用'parameterMap'标记来映射参数并指定jdbcTypejavaType