用mybatis-plus的lambda只查询一个字段
时间: 2024-02-01 12:13:26 浏览: 26
可以使用`select`方法来指定查询的字段,例如:
```java
// 假设实体类为User,查询id字段
List<Integer> idList = userMapper.selectList(Wrappers.<User>lambdaQuery().select(User::getId)).stream().map(User::getId).collect(Collectors.toList());
```
上述代码中,使用`select`方法指定要查询的字段是`User`实体类中的`id`字段。`Wrappers.<User>lambdaQuery()`是mybatis-plus提供的lambda查询构造器,`User::getId`是Java8引入的方法引用,表示获取`User`实体类中的`id`字段。最终查询结果为一个`List<Integer>`类型的id集合。
相关问题
mybatis-plus只查询一个字段
如果您使用MyBatis-Plus进行查询,则可以使用`selectObjs`方法来查询单个字段。这个方法返回一个`List<Object>`,其中每个对象都是查询结果中的一个字段值。
以下是一个示例代码,该代码使用`selectObjs`方法查询user表中的name字段值:
```
List<Object> nameList = userService.lambdaQuery().select(User::getName).listObjs();
```
这里的`User::getName`是一个lambda表达式,表示查询结果只需要返回User实体类的name字段值。
mybatis-plus lambda表达式
MyBatis-Plus是MyBatis的增强工具,在MyBatis的基础上增加了许多实用的功能,其中包括Lambda表达式查询。Lambda表达式是Java 8中引入的一种新的语法,可以简化代码,使代码更加易读。在MyBatis-Plus中,我们可以使用Lambda表达式来构建查询条件,从而避免手写SQL语句。
使用Lambda表达式查询需要先引入MyBatis-Plus的依赖,然后在实体类中使用@TableLogic注解标注逻辑删除字段,接着就可以使用LambdaQueryWrapper或LambdaUpdateWrapper来构建查询条件。LambdaQueryWrapper用于查询,LambdaUpdateWrapper用于更新。
Lambda表达式查询的语法类似于SQL语句,例如:
```
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getName, "张三").or().eq(User::getName, "李四");
List<User> userList = userMapper.selectList(wrapper);
```
这段代码的意思是查询名字为“张三”或“李四”的用户列表。
除了eq方法,LambdaQueryWrapper还提供了很多其他的查询方法,例如gt、lt、ge、le、like等,可以根据需要选择使用。