mybatis-plus模糊+条件查询
时间: 2023-08-29 17:10:16 浏览: 262
Mybatis-Plus的模糊查询可以使用`like`方法,可以结合Lambda条件构造器进行条件查询。
示例代码如下:
```java
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "张"); // 模糊查询name字段中包含“张”的记录
queryWrapper.eq("status", 1); // 筛选status字段等于1的记录
List<User> userList = userMapper.selectList(queryWrapper);
```
上述代码中使用`like`方法进行模糊查询,其中第一个参数为要查询的字段名,第二个参数为要匹配的模糊字符串。
同时,结合Lambda条件构造器进行条件查询,`eq`方法表示相等查询。
更多Mybatis-Plus的查询方法可以参考官方文档:https://baomidou.com/guide/wrapper.html#lambda%E6%9D%A1%E4%BB%B6%E6%9E%84%E9%80%A0%E5%99%A8
相关问题
mybatis-plus模糊查询加条件查询
Mybatis-plus 提供了方便的 API 来实现模糊查询和条件查询。
模糊查询可以使用 `like` 来实现,示例代码如下:
```java
QueryWrapper<Entity> wrapper = new QueryWrapper<>();
wrapper.like("name", "keyword");
```
这里的 `Entity` 是实体类,`name` 是字段名,`keyword` 是要查询的关键字。
条件查询可以使用 `eq`、`ne`、`gt`、`ge`、`lt`、`le` 等方法,示例代码如下:
```java
QueryWrapper<Entity> wrapper = new QueryWrapper<>();
wrapper.eq("age", 18)
.ne("status", 0)
.gt("salary", 5000)
.le("create_time", "2022-01-01");
```
这里的 `Entity` 是实体类,`age`、`status`、`salary`、`create_time` 是字段名,数字和日期类型使用对应的方法,字符串类型使用 `eq`、`ne`、`like` 等方法。通过组合多个条件可以实现更复杂的查询。
另外,如果需要使用多个条件进行查询,可以使用 `and` 和 `or` 方法来连接多个查询条件,示例代码如下:
```java
QueryWrapper<Entity> wrapper = new QueryWrapper<>();
wrapper.eq("age", 18)
.or()
.eq("age", 20)
.and()
.like("name", "keyword");
```
这里的 `Entity` 是实体类,`age`、`name` 是字段名,使用 `or` 方法表示或者,使用 `and` 方法表示并且。
mybatis-plus-join模糊查询
在 MyBatis-Plus 中,可以通过使用 Wrapper 类来实现模糊查询和多表关联查询。下面是一个示例:
```java
public List<User> selectUserList(String keyword) {
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like("username", keyword)
.or()
.like("email", keyword);
return userMapper.selectList(wrapper);
}
```
在上述代码中,我们使用了 QueryWrapper 类来构建查询条件,使用了 like 方法来实现模糊查询。同时,使用 or 方法来实现关键词匹配 username 或 email 字段的查询。
如果需要进行多表关联查询,可以使用 LambdaQueryWrapper 类来构建查询条件,示例代码如下:
```java
public List<User> selectUserList(String keyword) {
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.like(User::getUsername, keyword)
.or()
.like(User::getEmail, keyword)
.inSql(User::getId, "SELECT user_id FROM user_role WHERE role_id = 1");
return userMapper.selectList(wrapper);
}
```
在上述代码中,我们使用了 LambdaQueryWrapper 类来构建查询条件,使用了 like 方法来实现模糊查询。同时,使用 or 方法来实现关键词匹配 username 或 email 字段的查询。还使用了 inSql 方法来实现关联查询,查询条件为 role_id = 1 的用户。
阅读全文