mybatis resulttype如果是集合情形不能是集合本身,那为何可以是map

adnap7 2018-09-08 10:31:20
map不也是集合吗,为什么resulttype不能写list,可以写map?
当是List时:
mapper 接口: List<Employee> getAllEmps();
SQL 映射文件:
<select id="getAllEmps" resultType="employee">
select * from t_employee
</select>
当查询结果为一条,且resulttype是map时:
mapper 接口:Map<String, Object> getEmpAsMapById(Integer id);
SQL 映射文件:
<select id="getEmpAsMapById" resultType="map">
select * from t_employee where id = #{id}
</select>
...全文
604 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
adnap7 2018-09-10
  • 打赏
  • 举报
回复
引用 2 楼 xiaofanku 的回复:

<select id="getAllEmps" resultType="Employee类的全名">
select * from t_employee
</select>



需要追求为什么?看源码最佳的,或者你是mybatis的作者,你该怎么定义呢?若select id="getAllEmps" resultType="list",哪是不是可以往里放任何值呢?先放个Integer,再放个Object,后放个String,哪这个List<T> T是什么类型呢

也就是说mybatis resultType不能是list是因为不能用,而Map<String,Object>可以这样用是吧。我一直以为这只是mybatis的一个约定,看官方文档时就好奇map为什么和list不一样,原来是这样
adnap7 2018-09-10
  • 打赏
  • 举报
回复
也就是说mybatis resultType不能是list是因为不能用,而Map<String,Object>可以这样用是吧。我一直以为这只是mybatis的一个约定,看官方文档时就好奇map为什么和list不一样,原来是这样
街头小贩 2018-09-09
  • 打赏
  • 举报
回复

<select id="getAllEmps" resultType="Employee类的全名">
select * from t_employee
</select>



需要追求为什么?看源码最佳的,或者你是mybatis的作者,你该怎么定义呢?若select id="getAllEmps" resultType="list",哪是不是可以往里放任何值呢?先放个Integer,再放个Object,后放个String,哪这个List<T> T是什么类型呢
街头小贩 2018-09-09
  • 打赏
  • 举报
回复
resultType:

1、基本类型 :resultType=基本类型

2、List类型: resultType=List中元素的类型

3、Map类型 单条记录:resultType =map

多条记录:resultType =Map中value的类型

10,612

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 其他
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧