MyBatis的各种查询功能结果接收类型的选择(推荐)
一、若查询出的数据只有一条
1.可以通过实体类对象接收
User getUserById(@Param("id") Integer id);<select id="getUserById" resultType="User">
select *
from t_user
where id = #{id};
</select>2.可以通过list集合接收
List<User> getUserById(@Param("id") Integer id);3.可以通过map集合接收
Map<String, Object> getUserByIdToMap(@Param("id") Integer id);<select id="getUserByIdToMap" resultType="java.util.Map">
select *
from t_user
where id = #{id};
</select>结果:{password=123456, sex=男, id=3, age=23, email=12345@qq.com, username=admin}
二、若查询出的数据有多条
1.可以通过实体类类型的list集合接收
List<User> getAllUser();
<select id="getAllUser" resultType="User">
select *
from t_user;
</select>2.可以通过map类型的list集合接收
List<Map<String, Object>> getUsersByIdToMap(@Param("id") Integer id);<select id="getUsersByIdToMap" resultType="java.util.Map">
select *
from t_user
where id = #{id};
</select>@Test
public void testGetUsersByIdToMap() {
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
List<Map<String, Object>> users = mapper.getUsersByIdToMap(6);
users.forEach(System.out::println);
// {password=789789, sex=男, id=6, age=25, email=456123@qq.com, username=李四}
}3.可以在mapper接口的方法上添加@MapKey注解
@MapKey("id")
Map<String, Object> getAllUserToMap();此时就可以将每条数据转换的map集合作为值,以某个字段的值作为键,放在同一个map集合中

注意:一定不能通过实体类对象接收,此时会抛异常TooManyResultsException
MyBatis中设置了默认的类型别名:
- java.lang.Integer-->int,integer
- int-->_int,_integer
- Map-->map
- String-->string
到此这篇关于MyBatis的各种查询功能,结果接收类型的选择的文章就介绍到这了,更多相关MyBatis内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
springBoot+webMagic实现网站爬虫的实例代码
这篇文章主要介绍了springBoot+webMagic实现网站爬虫的实例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-05-05
本地启动RocketMQ未映射主机名产生的超时问题最新解决方案
这篇文章主要介绍了本地启动RocketMQ未映射主机名产生的超时问题,本文给大家分享最新解决方案,感兴趣的朋友跟随小编一起看看吧2024-02-02
SpringSecurity框架下实现CSRF跨站攻击防御的方法
CSRF是一种网络攻击方式,也可以说是一种安全漏洞,这种安全漏洞在web开发中广泛存在。这篇文章主要介绍了SpringSecurity框架下实现CSRF跨站攻击防御,需要的朋友可以参考下2019-12-12
解决jackson反序列化失败InvalidFormatException:Can not dese
这篇文章主要介绍了解决jackson反序列化失败InvalidFormatException:Can not deserialize value of type java.util.Date问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-12-12


最新评论