參數問題 在映射文件中通過parameterType指定輸入參數的類型;在映射文件中通過resultType指定輸出結果的類型。 占位符和拼接符問題 #{}表示一個占位符號,#{}接收輸入參數,類型可以是簡單類型,pojo、hashmap。 如果接收簡單類型,#{}中可以寫成value或其它名稱。 ...
參數問題
在映射文件中通過parameterType指定輸入參數的類型;在映射文件中通過resultType指定輸出結果的類型。
占位符和拼接符問題
#{}表示一個占位符號,#{}接收輸入參數,類型可以是簡單類型,pojo、hashmap。
如果接收簡單類型,#{}中可以寫成value或其它名稱。
#{}接收pojo對象值,通過OGNL讀取對象中的屬性值,通過屬性.屬性.屬性...的方式獲取對象屬性值。
${}表示一個拼接符號,會引用sql註入,所以不建議使用${}。
${}接收輸入參數,類型可以是簡單類型,pojo、hashmap。
如果接收簡單類型,${}中只能寫成value。
${}接收pojo對象值,通過OGNL讀取對象中的屬性值,通過屬性.屬性.屬性...的方式獲取對象屬性值。
selectone和selectList
在我們通過sqlSession進行查詢的時候,可以選擇selectOne和選擇SelectList,這個時候,它們是有區別的。
selectOne表示查詢出一條記錄進行映射。如果使用selectOne可以實現使用selectList也可以實現(list中只有一個對象)。
selectList表示查詢出一個列表(多條記錄)進行映射。如果使用selectList查詢多條記錄,不能使用selectOne。
如果使用selectOne報錯:
org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 4