springboot+mybatis查询结果集为HashMap时,自动过滤掉null的key问题

Mybatis查询,返回为HashMap或者LinkedHashMap时,某些结果集的字段null,导致map中少key。
修改mybatis配置:
        callSettersOnNulls属性设置为true
        mybatis.configuration.callSettersOnNulls=true
配置完重启即可。
我这里用的sql作为参数,原生sql查询。
        String sql ="Select * from 表名;"
        List<LinkedHashMap<String, String>> resultMap = dao.selectData(sql);//有序map

mapper写法:

        @Select("${sql}")

        List<LinkedHashMap<String, String>> selectData(@Param("sql") String sql);


        List<String> columnDataList = new ArrayList<String>();
        for (LinkedHashMap<String, String> result : resultMap) {
            StringJoiner columnDataJoiner = new StringJoiner("||");
            Iterator iterator = result.entrySet().iterator();
            while (iterator.hasNext()) {
                Map.Entry entry = (Map.Entry) iterator.next();
                columnDataJoiner.add(ObjectUtils.isEmpty(entry.getValue())?"":entry.getValue().toString());//防止map的value为null时替换为""
            }
            columnDataList.add(columnDataJoiner.toString());
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值