Mybatis-Plus条件构造器select方法返回指定字段

Mybatis-Plus条件构造器select方法返回指定字段

条件构造器select用法

1.返回特定的几个字段 select(字段…)
2.排除某几个字段 select(entiyClass,predicate判断)
3.分组聚合函数 select(“聚合函数”)

搭配service的.listMaps方法,将返回的数据封装到map中

避免了多余字段的返回

实例

说明 :以下代码中 iProjectBuildService实现了mybatis-plus的service接口
实例一:指定需要查询的具体字段

public AjaxResult listAll(ProjectBuild projectBuild) {
    //只返回了id和name两个字段    
    List<Map<String,Object>> list = this.iProjectBuildService.listMaps(
           Wrappers.lambdaQuery(projectBuild).select(ProjectBuild::getBuildId,ProjectBuild::getBuildName)
           .orderByAsc(ProjectBuild::getBuildId)
           // 以上select表示要返回的字段,
    );

    return AjaxResult.success(list);
}

实例二:排除不需要返回的字段

@Test
public void selectByQueryWrapper8(){
    QueryWrapper<Employee> queryWrapper=new QueryWrapper();
 
    queryWrapper.lambda()
             .select(Employee.class,fieldInfo->!fieldInfo.getColumn().equals("birthday")&&!fieldInfo.getColumn().equals("gender"))
             .gt(Employee::getSalary,3500)
             .like(Employee::getName,"小");
    List<Employee> employeeList = employeeMapper.selectList(queryWrapper);
    System.out.println(employeeList);
}

实例三:返回聚合函数值
sql实现:

SELECT departmentId,AVG(salary) AS avg_salary FROM t_employee GROUP BY department_id;
@Test
public void selectByQueryWrapper9(){
    QueryWrapper<Employee> queryWrapper=new QueryWrapper();
  
    queryWrapper.select("department_id","AVG(salary) AS avg_salary")
             .groupBy("department_id");
    List<Employee> employeeList = employeeMapper.selectList(queryWrapper);
}

问题解决

问题描述: map中的key没有使用驼峰命名
解决方法: 使用hutool工具包中的 MapUtil.toCamelCaseMap(map);

//处理map中key未驼峰命名
list = list.stream().map(MapUtil::toCamelCaseMap).collect(Collectors.toList());
  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值