@Select的传参
时间: 2023-10-01 17:11:46 浏览: 88
解决element UI 自定义传参的问题
在 MyBatis 的 `@Select` 注解中,参数的传递方式有以下几种:
1. 单个参数传递:可以直接将参数作为方法的输入参数进行传递。在 SQL 语句中,可以使用 `#{参数名}` 的方式引用参数。例如:
```java
@Select("SELECT * FROM users WHERE id = #{userId}")
User getUserById(Long userId);
```
2. 多个参数传递:如果需要传递多个参数,可以使用 `@Param` 注解为每个参数指定名称,并在 SQL 语句中使用这些名称引用参数。例如:
```java
@Select("SELECT * FROM users WHERE name = #{name} AND age = #{age}")
User getUserByNameAndAge(@Param("name") String name, @Param("age") Integer age);
```
3. 使用 Map 传参:可以使用 Map 作为方法的输入参数进行传递。在 SQL 语句中,可以使用 `#{mapKey}` 的方式引用 Map 中的值。例如:
```java
@Select("SELECT * FROM users WHERE name = #{name} AND age = #{age}")
User getUserByMap(Map<String, Object> paramMap);
```
4. 使用注解方式传参:可以使用 `@Param` 注解为参数指定名称,然后在 SQL 语句中使用该名称引用参数。例如:
```java
@Select("SELECT * FROM users WHERE name = #{name} AND age = #{age}")
User getUserByAnnotation(@Param("name") String name, @Param("age") Integer age);
```
这些是常用的 `@Select` 注解的传参方式。根据具体的需求和场景,选择适合的传参方式即可。
阅读全文