不需要用@Param注解: 1.只有一个参数时,不需要用@Param注解。此时在不使用@Parma注解的情况下,sql语句中的参数占位符名称直接使用任何名称均可; 2.方法参数是引用数据类型的情况下,不需要用@Param注解。 需要用@Param注解: 1. 多个参数是要写的(事实上多参数可以不写该注解,但处理起来会很麻烦); 2. 要是想给参数起个别名,那得写; 例:想给参数name起别名为username,想给参数age起别名为userAge。 UserInfo selectByNameAndAge(@Param("username") String name, @Param("userAge") int age); <select id="selectByNameAndAge" resultType="UserInfo">SELECT * FROM user_tableWHERE username = #{username} AND user_age = #{userAge} </select> 3. XML 中的 sql 语句使用了 $ 符号也要写; 4. 动态 sql 语句中有参数作为变量,那么该参数就要写。 注:如果在方法参数是一个参数或多个参数的情况下使用了@Param注解,此时,sql语句中的参数占位符名称用注解的value值。