mybatis @Param用法
时间: 2023-06-28 17:13:32 浏览: 109
MyBatis中的@Param注解是用来指定方法参数与SQL语句中的参数对应关系的。
在MyBatis中,SQL语句中的参数是通过#{parameterName}的格式指定的,而方法参数则是以参数名作为占位符的。当方法参数与SQL语句中的参数名不一致时,就需要使用@Param注解来指定它们之间的对应关系。
例如,假设有一个方法是这样的:
```java
public List<User> getUserByNameAndAge(String name, int age);
```
对应的SQL语句是这样的:
```xml
<select id="getUserByNameAndAge" resultType="User">
SELECT * FROM user WHERE name=#{name} AND age=#{age}
</select>
```
可以看到,SQL语句中的参数名与方法参数名并不一致,这时就需要使用@Param注解来指定它们之间的对应关系:
```java
public List<User> getUserByNameAndAge(@Param("name") String name, @Param("age") int age);
```
这样,在SQL语句中就可以使用#{name}和#{age}来分别表示name和age两个参数了。
除了指定参数名之外,@Param注解还可以用来指定参数类型。例如,假设有一个方法是这样的:
```java
public void updateUser(User user);
```
对应的SQL语句是这样的:
```xml
<update id="updateUser">
UPDATE user SET name=#{user.name}, age=#{user.age} WHERE id=#{user.id}
</update>
```
可以看到,SQL语句中的参数是一个对象,但是方法参数只有一个User对象。这时就需要使用@Param注解来指定参数类型:
```java
public void updateUser(@Param("user") User user);
```
这样,在SQL语句中就可以使用#{user.name}、#{user.age}和#{user.id}来分别表示User对象的name、age和id属性了。
阅读全文