You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MyBatis中如何通过resultMap返回String类型的List集合?

解决MyBatis返回String类型List的问题

不用折腾多余的POJO,有两种简单直接的实现方式:

方法一:直接指定resultType(推荐)

MyBatis支持自动将单行单列的查询结果封装成List<String>,你只需要在<select>标签里把resultType设为java.lang.String即可,完全不需要依赖resultMap。

示例代码:

<select id="getXXX" parameterType="java.util.List" resultType="java.lang.String">
    SELECT target_column -- 替换成你要查询的字符串列名
    FROM your_table
    WHERE id IN
    <foreach collection="list" item="itemId" open="(" separator="," close=")">
        #{itemId}
    </foreach>
</select>

对应的Mapper接口方法要写成:

List<String> getXXX(List<Integer> ids); // 参数类型与XML的parameterType对应即可

方法二:使用resultMap映射

如果一定要用resultMap,也可以定义一个针对String类型的简单映射:

<resultMap id="StringResultMap" type="java.lang.String">
    <result column="target_column" /> <!-- 对应你查询的数据库字段名 -->
</resultMap>

<select id="getXXX" parameterType="java.util.List" resultMap="StringResultMap">
    SELECT target_column
    FROM your_table
    WHERE id IN
    <foreach collection="list" item="itemId" open="(" separator="," close=")">
        #{itemId}
    </foreach>
</select>

关于之前POJO尝试失败的说明

大概率是两个原因:一是Mapper接口的返回类型不对——如果接口返回的是POJO类,自然拿不到List<String>;二是POJO的属性名和数据库列名不匹配导致映射失效。但其实完全没必要用POJO绕圈,上面两种方法直接就能满足需求。

内容的提问来源于stack exchange,提问作者Santhosh P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 19:00:32