1、${}和#{}
1、首先兩者都是用來取參的,區別之處在於${}會把傳入的參數直接顯示,而#{}會把傳入的參數加雙引號當字符串處理
2、${}會有SQL注入的問題,#{}因爲是預編譯所以能夠很大程度防止sql注入。
3、能用#{}就不用${}(分情況)。
2、String字符串傳參
今天在測試一個東西的時候發現一個之前一直沒有注意到的小細節,mybatis傳入字符串參數時,使用${}取值會默認找傳入參數類型裏對應字段的getter/setter方法,會報 There is no getter for property named 'ids' in 'class java.lang.String'。的異常。
解決辦法有兩種
1、在參數上使用@param註解
2、在xml的if裏用”_parameter” 代表參數
。。。。。。
今天太晚先記錄下來,詳細內容後續補充。。。。。