不需要用@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_table
WHERE username = #{username} AND user_age = #{userAge}
</select>
3. XML 中的 sql 语句使用了 $ 符号也要写;
4. 动态 sql 语句中有参数作为变量,那么该参数就要写。
注:如果在方法参数是一个参数或多个参数的情况下使用了@Param注解,此时,sql语句中的参数占位符名称用注解的value值。