mapper接口中的@param注解
时间: 2024-04-20 16:24:52 浏览: 261
在mapper接口中,@param注解用于指定方法参数的名称和类型。它可以用于任何方法参数,包括基本类型、对象类型和集合类型。使用@param注解可以提高代码的可读性和可维护性,同时也可以帮助MyBatis框架正确地映射方法参数到SQL语句中的占位符。例如:
public interface UserMapper {
List<User> findUsersByNameAndAge(@Param("name") String name, @Param("age") int age);
}
在上面的例子中,@Param注解指定了方法参数的名称和类型,使得方法参数可以在SQL语句中正确地映射到占位符。这样,我们就可以通过调用findUsersByNameAndAge方法来查询指定名称和年龄的用户信息了。
相关问题
mapper层中@Param
在mapper层中,@Param注解用于给方法参数命名,以便在对应的SQL语句中可以通过#{参数名}的方式获取传入的参数值。例如,在上述引用中的方法getProductOnApp中,@Param("productType")用于给参数productType命名,这样在SQL语句中就可以使用#{productType}获取传入的productType参数的值。
mapper中的sql语句什么时候才加@Param注解
在Mapper中,如果SQL语句中使用了参数,就需要使用@Param注解来指定参数的名称。具体来说,如果SQL中只有一个参数,可以省略@Param注解;如果SQL中有多个参数,则必须使用@Param注解来指定每个参数的名称,否则MyBatis会抛出异常。
例如,假设我们要查询用户信息,其中用户名和密码是两个参数,SQL语句如下:
```
<select id="getUserInfo" resultType="User">
SELECT * FROM user WHERE username = #{username} AND password = #{password}
</select>
```
可以看到,这里使用了#{username}和#{password},因此需要在方法参数中使用@Param注解来指定参数名称,示例代码如下:
```
public User getUserInfo(@Param("username") String username, @Param("password") String password);
```
这样,MyBatis就能正确地将方法参数映射到SQL语句中的参数上了。
阅读全文