mybatis plus查询 结果为list<string>
时间: 2023-11-10 12:15:16 浏览: 24
如果你想要查询的结果为 `List<String>`,可以使用 `selectObjs` 方法来实现:
```java
// 构造查询条件
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.inSql("hobbies", "SELECT hobby FROM hobby_table WHERE category = 'outdoor'");
// 执行查询,并返回字符串列表
List<Object> objList = userMapper.selectObjs(queryWrapper);
List<String> stringList = objList.stream().map(Object::toString).collect(Collectors.toList());
```
`selectObjs` 方法可以返回一个包含查询结果的对象列表,每个对象对应一行记录。因为我们只查询了 `hobbies` 列,因此每个对象实际上就是一个字符串。接下来,我们可以使用 `stream` 和 `map` 方法将对象列表转换成字符串列表。
相关问题
mybatis-plus 查询表 接收List<String>
您好!针对您的问题,您可以使用Mybatis-Plus提供的LambdaQueryWrapper类的in()方法,将List<String>作为参数传入,实现查询表的功能。具体操作步骤如下:
1. 引入Mybatis-Plus依赖:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
```
2. 创建LambdaQueryWrapper对象,并使用in()方法:
```java
List<String> ids = Arrays.asList("1", "2", "3");
LambdaQueryWrapper<User> wrapper = Wrappers.lambdaQuery();
wrapper.in(User::getId, ids);
List<User> userList = userMapper.selectList(wrapper);
```
其中,User是实体类,getId()是获取id的方法,userMapper是对应的Mapper接口。
3. 最终实现的SQL语句类似于:
```sql
SELECT * FROM user WHERE id IN ('1', '2', '3')
```
希望这个回答能够帮到您!
mybatis plus查询list<string>
如果你使用的是 MyBatis Plus,可以使用 `LambdaQueryWrapper` 进行查询。
假设你有一个实体类 `User`,包含一个名为 `hobbies` 的 `List<String>` 属性,那么可以按照如下方式查询符合条件的用户列表:
```java
// 构造查询条件
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.inSql("hobbies", "SELECT hobby FROM hobby_table WHERE category = 'outdoor'");
// 执行查询
List<User> userList = userMapper.selectList(queryWrapper);
```
其中,`inSql` 方法可以传入一个 SQL 子查询,用于查询 `hobbies` 列表中包含指定兴趣的用户。这里假设 `hobby_table` 表中包含所有的兴趣,且每个兴趣都有一个所属的 `category` 类别,我们需要查询类别为 `"outdoor"` 的兴趣对应的所有用户。
需要注意的是,`inSql` 方法会将子查询的结果作为字符串嵌入到最终的 SQL 语句中,因此需要确保子查询的结果可以被正确解析为一个字符串列表。
阅读全文