上一章我们介绍了
mybatis的各种查询情况3 - 查询信息总量 count(*)以及返回总量https://blog.csdn.net/m0_53753920/article/details/124215322?spm=1001.2014.3001.5502本章我们会介绍如何通过mybatis的查询功能来返回一个map集合
目录
/** * 根据id查询用户信息为一个map */ Map<String, Object> getUserByIdToMap(@Param("id") Integer id);
resultType可以写成Map或者map, 具体别名Alias可以参考专栏的上一篇文章mybatis类型别名。
<!-- Map<String, Object> getUserByIdToMap();--> <select id="getUserByIdToMap" resultType="Map"> select * from t_user where id = #{id} </select>
通过id去查可能会抛出 NullPointerException , 在这里我们去捕获一下这个异常。在本次特点模拟了第一次有异常,捕获之后在查询的场景。3是ID不存在的,5是ID存在的。
@Test public void testGetUserByIdToMap() { SqlSession sqlSession = SqlSessionUtils.getSqlSession(); SelectMapper mapper = sqlSession.getMapper(SelectMapper.class); try{ Map<String, Object> userByIdToMap = mapper.getUserByIdToMap(3); userByIdToMap.forEach((k, v)-> System.out.println("key ="+k+", value = "+ v)); }catch (NullPointerException e){ e.printStackTrace(); Map<String, Object> userByIdToMap = mapper.getUserByIdToMap(5); System.out.println(userByIdToMap); }
4.1本次测试结果
可以看异常,捕获之后继续往下处理。
4.2mysql数据库结果
3不存在,5存在。
返回Map集合以字段和值为键值对。
下一章我们会介绍