遇到一个问题。在一个表中查四种不同status的记录数。
一开始想法是发四条SQL?或者做四个临时表?仔细想想这样不对,效率低下。
改用group by status,问题在于页面需要的是四个状态的统计值,只查count(id)等于只知道了value不知道对应key。
所以查status以及status的统计值。返回一个List<Map<String,object>>,遍历后用key在代码中判断该key是否等于指定状态,若等于,则该value就是是该status的统计值。
新手一只,一开始会有这个纠结原因还是自己对应代码和sql查询的应用不够灵活。吸取经验。
ps:要注意的是count(id)默认返回的是Long类型,用Integer类型接收的时候如果强转会报错。
需要转string再转Integer: Integer.valueOf(9999L.toString());
mybatis写映射返回值int能接收,是因为做了默认的类型转换。