欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mybatis的返回值是Map

程序员文章站 2022-07-01 08:18:53
...
	<select id="selectUserAndInfoMap" parameterType="Integer" resultType="map">
		select u.id,i.user_name,u.user_mobile,r.region_id,r.region_name,u.user_email,u.create_date from 
		base_login_user u,base_login_user_info i,base_region r 
		where u.id=i.user_id and i.region_id=r.region_id and i.region_id=#{regionId}
	</select>

上面这个是返回map。发现一个有趣的问题,返回的key可能是全大写或小写,假如要特定的key时,sql语句加上id as "id"。加上双引号后你输入的什么就是什么了。

map返回一组数据。

	@MapKey("id")
	public Map<String, String> selectUserAndInfoMap(Integer regionId);

list<map>返回集合数据

	@MapKey("id")
	public List<Map<String, String>> selectUserAndInfoMap(Integer id);

写接口时加上

@MapKey("id")

因为返回的map值是json格式,因此返回一个map集合从json传到页面可能会报错。

因此你发现这个报错的时候可能是你的返回值是map,而不是list<map>

一个不动脑子的解决方法,返回值还是list<map>,传值的时候map[0]。通过下标传值