mysql中有一张表,表名为public,包含id,pid,name属性.在mybatisplus中使用LambdaQueryWrapper查询时筛选name包含test的所有数据,并将查询结果中的id,pid保存到数组中
时间: 2023-09-04 19:04:09 浏览: 122
### 回答1:
在MyBatis Plus中使用 LambdaQueryWrapper 查询表 "public" 中 "name" 属性包含 "test" 的所有数据并将查询结果中的 "id" 和 "pid" 保存到数组中,可以这样写:
```
List<Public> list = new LambdaQueryWrapper<Public>()
.like(Public::getName, "test")
.select(Public::getId, Public::getPid)
.list();
```
或者这样:
```
List<Public> list = new LambdaQueryWrapper<Public>()
.like(Public::getName, "test")
.select(Public::getId, Public::getPid)
.list(new QueryWrapper<Public>());
```
然后可以利用java8的新特性 `stream()` 和 `map()` 取出id 和 pid的数据
```
Integer[] ids = list.stream().map(Public::getId).toArray(Integer[]::new);
Integer[] pids = list.stream().map(Public::getPid).toArray(Integer[]::new);
```
这里我们使用了Mybatis-plus的LambdaQueryWrapper来进行条件查询,并且使用了LambdaQueryWrapper.like(...)来进行模糊查询.
### 回答2:
在MyBatis Plus中,可以使用LambdaQueryWrapper来实现根据条件查询数据。假设有一张名为public的表,包含id、pid和name三个属性,现需要筛选出name包含"test"的所有数据,并将查询结果中的id和pid保存到数组中,可以按照以下步骤操作:
1. 导入所需的类:
```java
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.additional.query.impl.LambdaQueryChainWrapper;
```
2. 在调用查询的方法中,使用LambdaQueryWrapper指定查询条件,然后调用select方法指定要查询的字段:
```java
LambdaQueryWrapper<Public> queryWrapper = Wrappers.lambdaQuery();
queryWrapper.like(Public::getName, "test");
queryWrapper.select(Public::getId, Public::getPid);
```
3. 执行查询,并将查询结果中的id和pid保存到数组中:
```java
List<Public> publicList = publicMapper.selectList(queryWrapper);
List<Integer> idList = new ArrayList<>();
List<Integer> pidList = new ArrayList<>();
for (Public publicData : publicList) {
idList.add(publicData.getId());
pidList.add(publicData.getPid());
}
```
这样,通过以上步骤可以使用LambdaQueryWrapper在MyBatis Plus中查询名为public的表,筛选name包含"test"的所有数据,并将查询结果中的id和pid保存到数组中。
### 回答3:
在MySQL中有一张名为public的表,表结构包含id、pid和name属性。现在我们希望在mybatisplus中使用LambdaQueryWrapper查询该表,并筛选出name属性包含"test"的所有数据。同时,我们希望将查询结果中的id和pid保存到数组中。
首先,需要引入相关的依赖包,确保mybatisplus的LambdaQueryWrapper相关功能可用。
然后,在代码中进行查询操作,具体步骤如下:
1. 导入LambdaQueryWrapper类:
```java
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
```
2. 构建LambdaQueryWrapper对象,设置查询条件:
```java
LambdaQueryWrapper<PublicEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.like(PublicEntity::getName, "test");
```
3. 执行查询操作,并将结果中的id和pid保存到数组中:
```java
List<PublicEntity> resultList = publicMapper.selectList(wrapper);
int size = resultList.size();
Long[] ids = new Long[size];
Long[] pids = new Long[size];
for (int i = 0; i < size; i++) {
PublicEntity entity = resultList.get(i);
ids[i] = entity.getId();
pids[i] = entity.getPid();
}
```
这样,我们就完成了在mybatisplus中使用LambdaQueryWrapper查询MySQL表"public",并筛选出name属性包含"test"的数据,并将查询结果中的id和pid保存到数组的操作。
阅读全文