EntityWrapper过滤某个字段
时间: 2023-12-05 19:06:24 浏览: 32
在使用 MyBatis-Plus 的 `EntityWrapper` 进行查询时,可以通过如下方法来过滤某个字段:
假设我们有一个实体类 `User`,其中有字段 `name`,我们要查询 `name` 不为 null 的用户,可以使用如下代码:
```java
EntityWrapper<User> wrapper = new EntityWrapper<User>();
wrapper.isNotNull("name");
List<User> userList = userMapper.selectList(wrapper);
```
其中 `isNotNull` 方法表示查询该字段不为 null 的记录。如果要查询 `name` 字段为空的记录,可以使用 `isNull` 方法,例如:
```java
EntityWrapper<User> wrapper = new EntityWrapper<User>();
wrapper.isNull("name");
List<User> userList = userMapper.selectList(wrapper);
```
除了 `isNotNull` 和 `isNull` 方法外,`EntityWrapper` 还提供了多种其他的过滤方法,例如 `eq`、`ne`、`like`、`in`、`between` 等,可以根据具体需求进行选择。
相关问题
EntityWrapper不查询数据库中的某个字段
在使用 MyBatis-Plus 的 `EntityWrapper` 进行查询时,如果不想查询某个字段,可以使用 `setSqlSelect` 方法来设置 SQL 语句中的 SELECT 子句。
假设我们有一个实体类 `User`,其中有字段 `id`、`name` 和 `age`,我们只想查询 `id` 和 `name`,可以使用如下代码:
```java
EntityWrapper<User> wrapper = new EntityWrapper<User>()
.setSqlSelect("id, name")
.eq("age", 18);
List<User> userList = userMapper.selectList(wrapper);
```
其中 `setSqlSelect` 方法可以设置 SELECT 子句中的字段列表。我们在上面的代码中只写了 `id` 和 `name`,因此只会查询这两个字段。如果还想查询其他字段,可以在字符串中加入相应的字段名,用逗号隔开。
需要注意的是,使用 `setSqlSelect` 方法时,如果查询的实体类中某个字段在 SELECT 子句中没有出现,那么查询结果中该字段的值将会是 null。因此,如果在查询结果中需要用到该字段的值,应该将其包含在 SELECT 子句中。
EntityWrapper
EntityWrapper是Mybatis Plus中的一个实体类查询构造器,用于构建复杂的SQL查询条件。它可以通过链式调用的方式,方便地构建出各种复杂的查询条件。
EntityWrapper的使用方式如下:
1.创建EntityWrapper对象。
```java
EntityWrapper<User> wrapper = new EntityWrapper<>();
```
2.使用wrapper对象的方法构建查询条件。
```java
wrapper.eq("name", "张三"); //相当于name = '张三'
wrapper.like("email", "163"); //相当于email like '%163%'
wrapper.between("age", 18, 30); //相当于age between 18 and 30
wrapper.orderBy("age"); //相当于order by age
```
3.将wrapper对象传入Mapper中的查询方法中进行查询。
```java
List<User> userList = userMapper.selectList(wrapper);
```
除了上述的基本用法,EntityWrapper还可以进行更加复杂的SQL查询条件构造,例如子查询、联表查询等。它还支持动态SQL语句构造,可以根据条件判断动态拼接SQL语句,使得查询条件更加灵活。