mysql - mybatis 查询 统计数据库各个部门男女人数,分组查询,在xml文件接收统计结果
如何将“男”,“女”两个字段统计结果映射出来?
解决办法:
导入fastjson依赖
-
<dependency>
-
<groupId>com.alibaba</groupId>
-
<artifactId>fastjson</artifactId>
-
<version>1.2.60</version>
-
</dependency>
Dept实体类添加men ,women字段用于接收统计的数据
-
-
-
-
//使用Lombok注解来构建实体类
-
public class Dept {
-
-
private int did;
-
-
private String dname;
-
-
private String loc;
-
-
private List<Emp> emp;
-
/** 新建男性性别计数列*/
-
private int men;
-
/** 新建女性性别计数列*/
-
private int women;
-
-
-
}
接口
-
public interface CountMapper {
-
/**
-
* Description: 查询各部门男女人数
-
* date: 2022/11/22
-
*
-
* @param
-
* @Return Dept 部门信息
-
* @author: dsdg
-
* @since JDK 1.8
-
*/
-
List<Dept> findGender();
-
}
xml映射文件
-
<!--resultMap用于查询各部门男女人数-->
-
<resultMap id="baseMaps" type="com.golop.entity.Dept">
-
<result column="did" property="did"/>
-
<result column="dname" property="dname"/>
-
<result column="loc" property="loc"/>
-
<!--一下两列用于接收查询各部门男女人数-->
-
<result column="men" property="men"/>
-
<result column="women" property="women"/>
-
</resultMap>
-
-
<!--查询各部门男女人数-->
-
<select id="findGender" resultMap="baseMaps">
-
select d.did,
-
e.dept_id,
-
sum(case e.gender when '男' then 1 else 0 end) as men,
-
sum(case e.gender when '女' then 1 else 0 end) as women
-
from springboot.dept d
-
left join springboot.emp e
-
on d.did = e.dept_id
-
group by e.gender, d.did
-
</select>
补充:为了方便理解,就将统计男女人数字段加在Dept是实体类中,其实也可以新建单独的统计性别的实体类。该实体类中的成员可以设计成是sql语句中输出字段d.did,e.dept,men,women中的部分字段或者全部字段。此处的resultMap也其实也可以不加,直接用resultType
controller层
-
//请求映射地址/save
-
-
//请求转发(设置当前操作的返回值字符串)
-
-
public String savess() {
-
List<Dept> gender = deptService.findGender();
-
for (Dept dept : gender) {
-
System.out.println(dept);
-
}
-
//根据需要使用fastjson将结果转换成json格式数据
-
String s = JSON.toJSONString(gender);
-
return s;
-
}
后台结果:
前台结果:通过fastjson将不需要的值为null的字段过滤
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhhfcecg
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
excel打印预览压线压字怎么办
PHP中文网 06-22