Mybatis注解形式返回Map

需求场景:
批量从数据库查出若干条数据,包括id和name两个字段。希望可以把结果直接用Map接收,然后通过map.get(id)方便地获取name的值。
 

然后,在这个Mappper的方法上面加一个注解:

/**
 * 根据多个id批量获取名称
 * @param list 包含有Map key="id"的list
 * @return
 */
@MapKey("id")
public Map> getNamesByIds(List> list);

这个注解表示最外层Map的key为查询结果中字段名为“id”的值。
 

Mapper.xml中的配置如下:

	

上述是基于Mapper.xml文件的返回Map形式。

 

注解返回的Map形式:




@Select("select id,code,name from test where code =#{test} ")
@MapKey("id")
Map query(@Param("test")String test)

注意:返回的列不能用Results注解值,否则Mybatis是识别不了这个,也可以使用select * from ....之类的,用Map>接收。

 

 

你可能感兴趣的:(mybatis)