mybatis查询参数存在集合和String查出来一个hashMapkey为a字段value为b字段
可以使用MyBatis的ResultMap来实现查询结果为HashMap的功能。以下是一个示例代码:
@Mapper
public interface MyMapper {
@Select("SELECT a, b FROM my_table WHERE c IN (#{list})")
@MapKey("a")
Map<String, String> queryData(@Param("list") List<String> list);
}
在上述代码中,queryData方法接收一个参数list,参数类型为List<String>,表示查询条件中的集合参数。使用IN关键字可以将集合参数传递给SQL语句。@MapKey("a")注解表示以字段a作为HashMap的key。
在Mapper接口中使用@Mapper注解,表示该接口是MyBatis的Mapper接口。
然后在配置文件中配置ResultMap:
<resultMap id="resultMap" type="java.util.HashMap">
<id property="a" column="a" />
<result property="b" column="b" />
</resultMap>
在配置文件中,使用<resultMap>标签定义一个ResultMap,将查询结果的字段a和b映射到HashMap的key和value。type属性指定了ResultMap的类型。
最后,在配置文件中配置Mapper接口和ResultMap的映射关系:
<mapper namespace="com.example.MyMapper">
<select id="queryData" resultMap="resultMap">
SELECT a, b FROM my_table WHERE c IN (#{list})
</select>
</mapper>
在配置文件中,使用<mapper>标签指定了Mapper接口的命名空间,<select>标签指定了查询语句,并通过resultMap属性将查询结果映射到ResultMap。
这样,在调用queryData方法时,将会返回一个HashMap,其中key为字段a的值,value为字段b的值。
原文地址: https://www.cveoy.top/t/topic/i8Il 著作权归作者所有。请勿转载和采集!