前言
查询大体可以分为两类:1.返回结果只有1条数据 2.返回结果有多条数据
一、返回结果为1条数据
<!-- List<User> getUserById();-->
<select id="getUserById" resultType="User">
select * from t_user where id = #{id}
</select>
此时sql语句查询出来的只有表中的一条记录,因此返回结果应为1条数据
- 可以用实体类对象接收
User getUserById(@Param(value = "id") Integer id);
- 可以用List集合接收
List<User> getUserById(@Param(value = "id") Integer id);
- 可以用Map集合接收
注意:此时映射文件中的查询语句返回类型需要改变
<!-- Map<String, Object> getUserByIdToMap(@Param(value = "id") String id);-->
<select id="getUserByIdToMap" resultType="map">
select * from t_user where id = #{id}
</select>
Map<String, Object> getUserByIdToMap(@Param(value = "id") Integer id);
二、返回结果有多条数据
<!-- List<User> getAllUser();-->
<select id="getAllUser" resultType="User">
select * from t_user
</select>
- 可以用List集合接收
List<User> getAllUser();
- 可以用Map集合接收
注意:此时映射文件中的查询语句返回类型需要改变
<!-- List<Map<String,Object>> getAllUserToMap();-->
<select id="getAllUserToMap" resultType="Map">
select * from t_user
</select>
List<Map<String,Object>> getAllUserToMap();
总结
- List集合或Map集合可以接收不同数目的数据
- 实体类对象只能用来接收1条数据
resultType
的值应和Mapper接口中对应函数的返回值类型保持一致