2015-02-05 44 views
0

有人能解釋我如何創建一個iBATIS的SQL更新語句像這樣(在IN子句中的值是地圖內):如何使用IBatis和Oracle數據庫在SQL Update中使用IN子句?

UPDATE employee e 
SET e.salary = 5000 
WHERE e.employee_id IN (900, 800, 700); 

我不知道,我該如何使用IN子句一個SQL更新中(一個SQL SELECT裏邊有沒有問題):

<update id="employeeChanging" parameterClass="Map"> 
    UPDATE employee e 
    SET  e.salary= 5000     
    WHERE e.employee_id IN (# configuration unclear!) 
</update> 

回答

0

您只需創建3條UPDATE語句是這樣的:使用iBATIS版本<3和

<update id="employeeChanging" parameterClass="Map"> 
    <foreach item="item" collection="entries.entrySet()"> 
     UPDATE employee e 
     SET  e.salary= 5000     
     WHERE e.employee_id = #{item.key}; 
    </foreach>  
</update> 
+0

I'm現在有了foreach元素。有其他選擇嗎? – Marwief 2015-02-06 04:28:08

+0

根據[文檔](http://ibatis.apache.org/docs/java/pdf/iBATIS-SqlMaps-2_en.pdf)the're id element – Nailgun 2015-02-06 08:59:42