mybatis${}、#{}和String字符串傳參的記錄


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” 代表參數


。。。。。。


今天太晚先記錄下來,詳細內容後續補充。。。。。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章