Mybatis_ 返回List<Map<K,V>> 结构类型数据



注意:

不管采用怎么样的方法,最终映射的字段名 会被作为 hashMap 的 key , 

如下面 的 id , value 会被作为hashMap 的 key.

也就是无法直接让  map<key, value> 直接映射为查询的结果,即使只有2列



xxx - mapper.xml


resultMap定义

<!-- TODO 测试返回 HashMap-->
  <resultMap id="testResultMap" type="java.util.HashMap">
    <result column="id"  property="id" jdbcType="INTEGER"  javaType="int" />
    <result column="campaign_id" property="value" jdbcType="INTEGER" javaType="int" />
  </resultMap>


查询mapper
<!-- TODO 返回 List<hashMap> 测试 -->
  <select id="testQueryHashMap" resultMap="testResultMap" >
    select id, campaign_id
    from report_campaign
  </select>


测试代码:

@Test
    public void testQueryHashMap()
    {
        CampaignReportMapper campaignReportMapper = sqlSession.getMapper(CampaignReportMapper.class);
        List<Map<String,Object>> result = campaignReportMapper.testQueryHashMap();

        for(int i=0; i< result.size(); i++){
            Map<String,Object> tmp = result.get(i);
            System.out.println("id : " + tmp.get("id"));
            System.out.println("campaign_id : " + tmp.get("campaign_id"));
            System.out.println("------------------ ");

            System.out.println("id : " + tmp.get("id"));
            System.out.println("campaign_id : " + tmp.get("value"));
            System.out.println("------------------ ");

        }
    }



效果:





mybatis返回List<Map<String, Object>>的好处在于不需要再定义一个实体类对象,可以直接接收返回数据。这种返回类型通常用于连接查询,当查询结果涉及多个表时,可以使用这种方式来接收返回数据。\[2\]在xml文件中,可以使用resultType="java.util.HashMap"来定义返回类型List<Map<String, Object>>。\[1\]这样,查询结果会以List的形式返回,每个元素都是一个Map,其中Key为String类型,Value为Object类型。这样的返回结果可以方便地进行遍历和操作。\[3\] #### 引用[.reference_title] - *1* [mybatis 查询返回List<String>、Map<String,Object>、ListMap<String,Object>>](https://blog.csdn.net/li1325169021/article/details/114003291)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v12^insert_chatgpt"}} ] [.reference_item] - *2* [Mybatis查询返回Map<String,Object>类型](https://blog.csdn.net/Syals/article/details/125333637)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v12^insert_chatgpt"}} ] [.reference_item] - *3* [mybatis返回结果为ListMap<String, Object>>的法](https://blog.csdn.net/weixin_43860634/article/details/124401119)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v12^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值