Java中mybatis plus查询对象集合,只查询单个对象属性,并返回该属性的list集合
时间: 2024-02-02 10:03:56 浏览: 42
你可以使用Mybatis Plus提供的LambdaQueryWrapper来实现该功能。LambdaQueryWrapper是Mybatis Plus提供的一种更加方便的查询方式,可以使用Lambda表达式来构造查询条件。
具体操作步骤如下:
1. 导入Mybatis Plus和相关依赖。
2. 创建LambdaQueryWrapper对象,指定需要查询的实体类类型。
3. 在LambdaQueryWrapper对象中指定查询条件,使用Lambda表达式来构造查询条件。
4. 调用Mybatis Plus提供的selectObjs方法查询数据,并使用Java 8中的Stream API将查询结果转换为需要的属性集合。
示例代码如下:
```java
List<String> nameList = new LambdaQueryWrapper<User>()
.select(User::getName) // 指定查询的属性
.eq(User::getGender, 1) // 指定查询条件
.list()
.stream()
.map(User::getName) // 转换为需要的属性集合
.collect(Collectors.toList());
```
以上代码将查询gender为1的所有User对象的name属性,并返回name属性的List集合。
相关问题
mybatis-plus 单个查询条件支持多选查询
Mybatis-Plus支持多种查询方式,包括单个条件多选查询。您可以使用LambdaQueryWrapper中的in方法来实现单个条件多选查询。例如,假设您有一个User实体类,其中有一个属性叫做age,您想查询年龄为18、20和22的所有用户。您可以使用以下代码:
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.in(User::getAge, 18, 20, 22);
List<User> userList = userService.list(wrapper);
```
这里的in方法接收两个参数,第一个参数是要查询的字段,第二个参数是一个可变参数,用于传递多个值。在这个例子中,我们将年龄字段作为第一个参数,然后传递了三个值:18、20和22。这样就可以查询到所有年龄为这三个值的用户了。
另外,如果您需要查询的条件比较复杂,可以考虑使用Mybatis-Plus的QueryWrapper类或者自定义SQL语句来实现。
mybatis-plus只查询一个字段
如果您使用MyBatis-Plus进行查询,则可以使用`selectObjs`方法来查询单个字段。这个方法返回一个`List<Object>`,其中每个对象都是查询结果中的一个字段值。
以下是一个示例代码,该代码使用`selectObjs`方法查询user表中的name字段值:
```
List<Object> nameList = userService.lambdaQuery().select(User::getName).listObjs();
```
这里的`User::getName`是一个lambda表达式,表示查询结果只需要返回User实体类的name字段值。