@Param
时间: 2023-07-03 17:22:05 浏览: 108
`@Param`注解是MyBatis中用于指定Mapper方法参数名称的注解,它可以用于解决Mapper方法有多个参数时,参数名称在SQL语句中不明确的问题。
在MyBatis中,如果Mapper方法有多个参数,则在SQL语句中需要使用`#{}`来引用参数值,但是`#{}`中的参数名称默认是根据参数类型生成的,例如:
```java
public interface UserMapper {
List<User> selectUsersByAgeAndGender(int age, String gender);
}
```
对应的SQL语句可能是:
```xml
<select id="selectUsersByAgeAndGender" resultType="User">
SELECT * FROM users WHERE age = #{arg0} AND gender = #{arg1}
</select>
```
这里的`#{arg0}`和`#{arg1}`是根据参数类型自动生成的,不太直观,容易出错。为了解决这个问题,可以使用`@Param`注解来指定参数名称,例如:
```java
public interface UserMapper {
List<User> selectUsersByAgeAndGender(@Param("age") int age, @Param("gender") String gender);
}
```
对应的SQL语句就可以使用`#{}`来引用参数名称了,例如:
```xml
<select id="selectUsersByAgeAndGender" resultType="User">
SELECT * FROM users WHERE age = #{age} AND gender = #{gender}
</select>
```
这样就可以清晰地看到参数名称了,也方便了后续的维护和调试。
阅读全文