mybatis-plus多参数查询
时间: 2023-08-19 15:09:46 浏览: 110
mybatis plus的3种查询方式(小结)
MyBatis-Plus支持多参数查询,可以通过以下几种方式实现:
1. 使用@Param注解:在Mapper接口的方法参数中使用@Param注解,将多个参数映射到SQL语句中的对应位置。示例代码如下:
```java
@Mapper
public interface UserMapper extends BaseMapper<User> {
List<User> selectUsers(@Param("name") String name, @Param("age") Integer age);
}
```
在XML映射文件中的SQL语句中使用`#{}`占位符引用这些参数:
```xml
<select id="selectUsers" resultType="User">
SELECT * FROM user
WHERE name = #{name}
AND age = #{age}
</select>
```
2. 使用Map作为参数:将多个参数封装到一个Map中,Map的键值对分别对应参数名和参数值。示例代码如下:
```java
@Mapper
public interface UserMapper extends BaseMapper<User> {
List<User> selectUsers(Map<String, Object> params);
}
```
在XML映射文件中的SQL语句中使用`#{}`占位符引用Map中的参数:
```xml
<select id="selectUsers" resultType="User">
SELECT * FROM user
WHERE name = #{name}
AND age = #{age}
</select>
```
3. 使用Wrapper对象:MyBatis-Plus提供了Wrapper对象,用于构建查询条件。可以通过链式调用方法设置多个查询条件。示例代码如下:
```java
@Mapper
public interface UserMapper extends BaseMapper<User> {
List<User> selectUsers(@Param(Constants.WRAPPER) Wrapper<User> wrapper);
}
```
在调用方法时,构建查询条件并传入Wrapper对象:
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "John")
.eq("age", 25);
List<User> users = userMapper.selectUsers(wrapper);
```
以上是MyBatis-Plus多参数查询的几种常见方式,根据具体需求选择合适的方式进行查询。
阅读全文