MyBatis报错: Parameter '*' not found. Available parameters are [1, 0, param1, param2]

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}开始):

1
public  User login(String loginid,String loginpwd)  throws  Exception;

 

1
2
3
<select id= "loginByTeacher"  parameterType= "String"  resultType= "User" >
     SELECT * FROM `user` WHERE LoginID=#{ 0 } and LoginPwd=#{ 1 } AND Role= 2
  </select>

猜你喜欢

转载自blog.csdn.net/abcyyjjkk/article/details/79084401