sql注解怎么实现多参数传递
时间: 2024-01-27 09:03:32 浏览: 77
在 MyBatis 中,可以使用 `@Param` 注解来实现多参数传递。
首先,在 Mapper 文件中定义 SQL 语句,如下所示:
```xml
<select id="findByNameAndAge" resultMap="userMap">
select * from user where username like CONCAT('%',#{name},'%') and age = #{age}
</select>
```
其中,`name` 和 `age` 分别表示两个参数。
接着,在 DAO 层中调用 Mapper 中定义的方法:
```java
public List<User> findByNameAndAge(@Param("name") String name, @Param("age") int age) {
try (SqlSession session = getSession()) {
UserMapper mapper = session.getMapper(UserMapper.class);
return mapper.findByNameAndAge(name, age);
}
}
```
在方法参数中,使用 `@Param` 注解来指定参数名,对应 SQL 语句中的参数名。
最后,在 Controller 层中处理请求,获取查询结果并返回给前端:
```java
@GetMapping("/users")
public String findUsers(Model model,
@RequestParam(value = "name", defaultValue = "") String name,
@RequestParam(value = "age", defaultValue = "0") int age) {
List<User> users = userService.findByNameAndAge(name, age);
model.addAttribute("users", users);
// 其他处理逻辑
return "user-list";
}
```
需要注意的是,`@Param` 注解必须要使用,否则会报错。同时,如果参数较多,建议将多个参数封装成一个对象进行传递,这样更加方便和清晰。
阅读全文