mapper代理接口中的方法:
public User login(String loginid,String loginpwd) throws Exception;
mapper.xml中的代碼:
<select id="login" parameterType="String" resultType="User">
SELECT * FROM `user` WHERE LoginID='#{loginid}' and LoginPwd='#{loginpwd}' AND Role=2
</select>
調用login()時出現Parameter 'loginid' not found. Available parameters are [1, 0, param1, param2]的錯誤。
解決方案:
當只傳一個參數到sql語句時,可以直接寫參數名,當傳多個參數時,應當這樣寫(多個參數已#{0}開始):
public User login(String loginid,String loginpwd) throws Exception;
<select id="loginByTeacher" parameterType="String" resultType="User"> SELECT * FROM `user` WHERE LoginID=#{0} and LoginPwd=#{1} AND Role=2 </select>
參考:http://www.2cto.com/database/201409/338155.html