ibatis中寫SQL語句時使用in遇到的問題描述

2021-06-20 23:29:37 字數 590 閱讀 4365

update chunqiu3.order_head t set t.status = #flag# where t.id in (#orderids#)

傳遞的id為2488877,2488878,2488879。但是資料卻沒有任何的修改。

因為ibatis缺省會把「#」中間的變數作為字串來處理。這樣,就會出現這樣的sql

update chunqiu3.order_head t set t.status = 1 where t.id in ('2488877,2488878,2488879')
所以使用$將你的變數括起來,ibatis不會給這個變數做任何的處理,直接生成你要的sql

update chunqiu3.order_head t set t.status = $flag$ where t.id in ($orderids$)
update chunqiu3.order_head t set t.status = 1 where t.id in (2488877,2488878,2488879)

mybatis中寫sql語句時需要轉義的字元

mybatis配置檔案,sql語句中含有轉義字元 錯誤語句 date sub curdate interval 3 day date a.create date 錯誤資訊 caused by org.xml.sax.saxparseexception linenumber 8 columnnumbe...

mybatis中寫sql語句時需要轉義的字元

mybatis配置檔案,sql語句中含有轉義字元 錯誤語句 select from table base where flag topic 錯誤資訊 caused by org.xml.sax.saxparseexception linenumber 8 columnnumber 54 the en...

mybatis中寫sql語句時需要轉義的字元

mybatis配置檔案,sql語句中含有轉義字元 錯誤語句 select from table base where flag topic 錯誤資訊 caused by org.xml.sax.saxparseexception linenumber 8 columnnumber 54 the en...