Parameter 'username' not found. Available parameters are [0, 1, param1, para

mybatis 出错了

好吧, 参数找不到????脑中只有黑人问号, 参数名检查检查几遍了, log出来也没出错啊, 找不到喔.....

错误示范

后台Java代码 :

mapper层的接口 :

List<UserAccount> getUserAccountByEmail(int username, String email);

mapper.xml 映射中的代码 :

<!--根据username,email获取UserAccount-->
  <select id = "getUserAccountByEmail" resultMap = "BaseResultMap">
  SELECT * FROM user_account WHERE ua_username = #{username} AND ua_email = #{email}
  </select>


然后就... :

Parameter 'username' not found. Available parameters are [0, 1, param1, para


找了一会, 原来是, 当mapper层的接口中超过一个参数是以下两种写法才可以被mybatis识别参数 

第一种 (改mapper层的接口代码):

List<UserAccount> getUserAccountByEmail(@Param("username")int username, @Param("email")String email);

在参数前面加上@Param("xxx") xxx就是mapper.xml中指定的参数名

第二种 (该mapper.xml中的代码)

 <select id = "getUserAccountByEmail" resultMap = "BaseResultMap">
   SELECT * FROM user_account WHERE ua_username = #{0} AND ua_email = #{1}
  </select>

在参数指定的名字出替换成接口中参数的序号(从0开始排)

希望可以帮到你, mybatis的成就之路


猜你喜欢

转载自blog.csdn.net/m0_37838381/article/details/76814966