java1234开源博客系统
博客信息

Mybatis-Plus查询返回Map类型数据

0
发布时间:『 2020-09-02 09:38』  博客类别:mybatis-plus  阅读(137)

Mybatis-Plus查询返回Map类型数据


我们前面的案例都是返回的集合List<T>;

集合List的弊端是会把所有的列属性都封装返回,但是我们有时候,只需要返回几个字段,然后再返回到用户端;

所以mp框架给我们提供了List<Map<String, Object>>返回类型,String是列名,Object是值,只返回select的字段;

 

举例:

/**
 * 查询每个部门的平均薪资
 * 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<Employee> queryWrapper2=Wrappers.<Employee>query();
    queryWrapper
             .select("department_id","AVG(salary) AS avg_salary")
             .groupBy("department_id");
    List<Employee> employeeList = employeeMapper.selectList(queryWrapper);
    System.out.println(employeeList);
}

 

返回值:

[Employee(id=null, name=null, birthday=null, gender=null, email=null, phoneNumber=null, salary=null, department_id=1, avg_salary=3000.0000), Employee(id=null, name=null, birthday=null, gender=null, email=null, phoneNumber=null, salary=null, department_id=2, avg_salary=3765.0000), Employee(id=null, name=null, birthday=null, gender=null, email=null, phoneNumber=null, salary=null, department_id=3, avg_salary=4000.0000), Employee(id=null, name=null, birthday=null, gender=null, email=null, phoneNumber=null, salary=null, department_id=4, avg_salary=5000.0000)]

 

没用的字段也返回了;

 

我们改用Map

/**
 * 查询每个部门的平均薪资(返回Map)
 * sql: SELECT departmentId,AVG(salary) AS avg_salary FROM t_employee GROUP BY department_id;
 */
@Test
public void selectByQueryWrapper10ReturnMap(){
    QueryWrapper<Employee> queryWrapper=new QueryWrapper();
    // QueryWrapper<Employee> queryWrapper2=Wrappers.<Employee>query();
    queryWrapper
             .select("department_id","AVG(salary) AS avg_salary")
             .groupBy("department_id");
    List<Map<String, Object>> maps = employeeMapper.selectMaps(queryWrapper);
    System.out.println(maps);
}

 

返回结果:

[{department_id=1, avg_salary=3000.0000}, {department_id=2, avg_salary=3765.0000}, {department_id=3, avg_salary=4000.0000}, {department_id=4, avg_salary=5000.0000}]

 

这样的结果才比较友好;

 


关键字:   无
关注Java1234微信公众号
博主信息
Java1234_小锋
(知识改变命运,技术改变世界)
Powered by Java1234 V3.0 Copyright © 2012-2016 Java知识分享网 版权所有