mybatis映射map集合

简单的map映射就不介绍了,这里只介绍复杂的map映射,比如我的数据类型是这样的
在这里插入图片描述
前端需要映射成一个map里面6个键值对
比如键是pm2_5 值是96.52727020240256

数据结构
在这里插入图片描述
在这里插入图片描述
要把这些数据映射到pollutantList里面

这里说明一下,在mybatis里面不能完全处理,需要借助java
mybatis代码

	<resultMap id="AirDayReportMap" type="com.swcote.sensor.dto.DistrictDayAqiReport">
        <result property="districtCode" column="districtCode"/>
        <result property="aqi" column="aqi"/>
        <result property="aqiGrade" column="aqiGrade"/>
        <result property="primaryPollutant" column="primaryPollutant"/>
        <result property="reportTime" column="reportTime"/>
        <collection property="pollutantList" ofType="HashMap" javaType="ArrayList">
            <result property="pm2_5" column="pm2_5"/>
            <result property="o3" column="o3"/>
            <result property="no2" column="no2"/>
            <result property="so2" column="so2"/>
            <result property="pm10" column="pm10"/>
            <result property="co" column="co"/>
        </collection>
    </resultMap>
    
    <select id="getAllDistrictDayAqis" resultMap="AirDayReportMap">
        SELECT
            district_code as "districtCode",
            aqi,
            aqi_grade as "aqiGrade",
            primary_pollutant as "primaryPollutant",
            report_time as "reportTime",
            pm2_5 as "pm2_5",
            o3 as "o3",
            no2 as "no2",
            so2 as "so2",
            pm10 as "pm10",
            co as "co",
            time
        FROM aqi_sensor_day
        WHERE time = #{day}
    </select>

这里映射过来是list<Map<k,v>>集合
加上@JsonIgnore保证前端不用获取PollutantList,当然获取了也没关系

 @JsonIgnore
 public List<Map<String, Number>> getPollutantList() {
      return pollutantList;
  }

因为前端请求的字段是pollutants
会调用getPollutants方法

public Map<String, Number> getPollutants() {
        Map<String, Number> resultMap = new HashMap<>();
        for (Map<String, Number> pollutant : pollutantList) {
            resultMap.putAll(pollutant);
        }
        return resultMap;
    }

在这个get方法里面转换我们从数据库获取的字段就可以了就可以了

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值