Parameter ‘0’ not found. Available parameters are [arg1, arg0, param1, param2]

这是因为mybatis的Mapper接口方法传入了多个参数,如

List<User> findByNameAndPsd(String username, String password);

配置文件:

<select id="findByNameAndPsd" parameterType="User" resultType="User">
        SELECT * FROM user WHERE username = #{username} AND password = #{password}</select>
  • 解决办法

    1. 使用#{arg0}#{arg1}来告诉mybatis,当前变量使用哪个参数的值

      <select id="findByNameAndPsd" parameterType="User" resultType="User">
              SELECT * FROM user WHERE username = #{arg0} AND password = #{arg1}
      </select>
      
    2. 使用注解@Param

      List<User> findByNameAndPsd(@Param("username") String username,@Param("password")String password);
      
posted @ 2021-08-09 11:32  江亭夕望  阅读(131)  评论(0)    收藏  举报