4 回答

TA貢獻(xiàn)1804條經(jīng)驗 獲得超2個贊
一、參數(shù)list時,先判斷是否為空,否則會報錯。
二、mybatis ${}與#{}的區(qū)別
簡單來說#{} 解析的是占位符?可以防止SQL注入, 比如打印出來的語句 select * from table where id=?然而${} 則是不能防止SQL注入打印出來的語句 select * from table where id=2 實實在在的參數(shù)。最簡單的區(qū)別就是${}解析穿過來的參數(shù)值不帶單引號,#{}解析傳過來參數(shù)帶單引號。最后總結(jié)一下必須使用$引用參數(shù)的情況,那就是參數(shù)的int型的時候,必須使用$引用。

TA貢獻(xiàn)1829條經(jīng)驗 獲得超4個贊
<if test="search.dataforArray != null"> and datefor in ;
<foreach item="item" index="index";
collection="search.dataforArray";
open="("separator="," close=")">#{item}</foreach>
</if>。
循環(huán)體中的具體對象:支持屬性的點路徑訪問,如item.age,item.info.details,具體說明:在list和數(shù)組中是其中的對象,在map中是value,collection,要做foreach的對象,作為入?yún)r,List<?>對象默認(rèn)用list代替作為鍵,數(shù)組對象有array代替作為鍵,Map對象沒有默認(rèn)的鍵。當(dāng)然在作為入?yún)r可以使用@Param("keyName")來設(shè)置鍵,設(shè)置keyName后,list,array將會失效。 除了入?yún)⑦@種情況外,還有一種作為參數(shù)對象的某個字段的時候。

TA貢獻(xiàn)1827條經(jīng)驗 獲得超4個贊
<if test="search.dataforArray != null">
and datefor in
<foreach item="item" index="index" collection="search.dataforArray" open="(" separator="," close=")">#{item}</foreach>
</if>

TA貢獻(xiàn)1856條經(jīng)驗 獲得超5個贊
這個<if test="search.dataforArray != null">
改為:
<if test="search.dataforArray != null and search.dataforArray !=''" >
添加回答
舉報