Mybatis錯誤筆記之:實現登陸操作提示parameter not found

頭皮發麻的瓜皮錯誤,找了半天找到了解決方案。
原來的sql語句是這樣寫的

select id,username,password,g_id as gId from user where username=#{username} and password=#{password}

在使用mapper接口實現實現類的時候,mybatis對其有規範,即在mapper接口中方法的參數最好只是用一個,而報出這個Exception就是因爲傳入的參數不是一個,纔會導致這樣的問題出現。
解決方案是:
1.(簡單粗暴)將sql語句改爲:

select id,username,password,g_id as gId from user where username=#{0} and password=#{1}

改成這樣後按順序從0傳入制定參數的就好了

2.(oop)講多個參數傳入對象中,將屬性parameterType設置成對象權限定名(全類名)就成了

3.接口方法聲明時,對每個參數使用 @param(value=”參數名”)
例如:
public List queryAllUser(@Param(“參數別名”)參數類型 參數名,…);

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