不需要用@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值。