如何将mybatis-plus条件查询下的list集合转换为map集合
时间: 2023-04-04 12:03:01 浏览: 176
可以使用Java 8的流(Stream)来将list集合转换为map集合,具体代码如下:
Map<Long, YourEntity> map = yourList.stream().collect(Collectors.toMap(YourEntity::getId, Function.identity()));
其中,YourEntity是你的实体类,getId()是获取实体类中主键的方法,Function.identity()是获取实体类对象本身的方法。这样就可以将list集合转换为以主键为key,实体类对象为value的map集合了。
相关问题
mybatis-plus 条件查询平均数
Mybatis-plus可以通过QueryWrapper来实现条件查询平均数。具体实现方法如下:
```
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select("avg(age) as avgAge").eq("gender", "male");
List<Map<String, Object>> userList = userDao.selectMaps(queryWrapper);
```
以上代码中,我们通过select方法指定查询的平均数,并通过eq方法指定查询条件,最后通过selectMaps方法执行查询操作并返回结果。
mybatis-plus怎么实现连表查询,不用mybatis-plus-join
MyBatis-Plus是一个基于MyBatis的增强工具,它提供了很多便捷的功能来简化开发。在MyBatis-Plus中,实现连表查询可以通过使用Wrapper(条件构造器)来实现。
下面是使用MyBatis-Plus实现连表查询的步骤:
1. 创建Wrapper对象:使用QueryWrapper或者LambdaQueryWrapper来创建一个Wrapper对象,用于构建查询条件。
2. 设置关联表:通过调用Wrapper对象的join方法,传入关联表的表名和关联条件,来设置关联表。
3. 执行查询:通过调用MyBatis-Plus提供的selectList或者selectPage方法,传入Wrapper对象作为参数,来执行查询操作。
下面是一个示例代码,演示如何使用MyBatis-Plus实现连表查询:
```java
// 创建Wrapper对象
QueryWrapper<User> wrapper = new QueryWrapper<>();
// 设置关联表
wrapper.join("user_role", "user_role.user_id = user.id")
.join("role", "role.id = user_role.role_id")
.select("user.id", "user.name", "role.name as roleName");
// 执行查询
List<Map<String, Object>> userList = userMapper.selectMaps(wrapper);
```
在上面的示例中,我们创建了一个QueryWrapper对象,并通过join方法设置了两个关联表:user_role和role。然后通过select方法指定了需要查询的字段。最后调用selectMaps方法执行查询,并将结果以List<Map<String, Object>>的形式返回。
注意:这里使用了selectMaps方法来返回结果,可以得到一个包含多个Map对象的List,每个Map对象表示一条查询结果,其中key为字段名,value为字段值。
阅读全文