mybatis查询结果返回一个map

本文介绍了在MyBatis中如何配置XML映射文件,使查询结果直接返回为一个HashMap。在DAO层和Service层的处理过程中,重点强调了在Service层需要对返回的Map进行进一步处理,以确保所有字段都被包含在内。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

xml文件中代码

<select id="formMcu" parameterType="java.lang.String" resultType="java.util.HashMap">
		select
			CONCAT(a.CANID,
			CONCAT('_',FIELDNAME)) CAN_COLUMN,
			PROPERTYNAME
	  	from
			fiber_can_content self,
			fiber_can a,
			fiber_group b
		where
			self.FIBER_CAN_ID=a.ID
		  and a.FIBER_GROUP_ID=b.ID
		  and fiber_unid = #{unid}
</select>

注意的是返回值 resultType = “java.util.HashMap”

dao层中

list<map> id (String unid);//多个结果的话保存在一个list里

service层中

private Map<String,BigDecimal> getBaseMap(Logger logger) {

    Map<String, BigDecimal> baseMap = new HashMap<String, BigDecimal>();
    List<Map<String, Object>> baseList = eadTrafficBaseMapper.getBaseMap();
    for (Map<String, Object> map:baseList     //遍历list
         ) {
        String base = null;
        BigDecimal fare = null;
        for (Map.Entry<String,Object>  entry:map.entrySet()   //遍历map的key集合 获取对应key的value
             ) {
            if ("base".equals(entry.getKey())) {
                base =  String.valueOf(entry.getValue());
            }else if ("traffic_fare".equals(entry.getKey())) {
                fare = new BigDecimal(String.valueOf(entry.getValue()));
            }
            baseMap.put(base,fare);
        }
    }
    return baseMap;

注意的是需要在service层中自己再次处理一下这个map,这样返回值就是一个map中包含了所有值了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值