mybatis中处理结果集映射
2019-10-17 09:04:45来源:博客园 阅读 ()
mybatis中处理结果集映射
单行结果集映射:
接口中方法返回值定义为Map类型,sql语句的resultType属性设置为map即可。这种情况默认把列名作为key,列中的值作为value。
也就是说用map<Strirng,Object>接收,一个map集合对应查询结果所封装的一个对象(一行数据对应一个对象)
多行结果集映射:
List<Map<String,Object>>接收,存放查询出来的多个对象
如果有一些特殊的情况,比如需要使用id值作为key,把一行数据封装成的对象作为value放到map中的话,需要使用下面的方式:
注意,这时候需要使用字符串来调用sql语句。
<select id="findAllUsers" resultType="User"> select id,name,gender from t_user </select>
@Test public void test_findAllUsers(){ SqlSession sqlSession = null; try { sqlSession = MyBatisSqlSessionFactory.openSession(); Map<Integer, User> map = sqlSession.selectMap("com.briup.mappers.SpecialMapper.findAllUsers","id"); map.forEach((k,v)->System.out.println(k+" : "+v)); } catch (Exception e) { e.printStackTrace(); } }
这里map将id作为key值,而每行数据封装成的User对象作为value值,sqlSession.selectMap()可以用我们指定的列作为key,默认使用封装好的对象作为value。也就是key我们可以指定,但是value只能是当前这条数据封装成的对象。
Map<Integer, User> map = sqlSession.selectMap("com.briup.mappers.SpecialMapper.findAllUsers","id");
其实核心只有以上一句代码,指定id为Key
mybatis使用ResultHandler自定义结果集ResultSet
@Test public void test_ResultHandler(){ final Map<Integer,String> map = new HashMap<Integer, String>(); SqlSession sqlSession = null; try { sqlSession = MyBatisSqlSessionFactory.openSession(); sqlSession.select("com.briup.mappers.SpecialMapper.findAllUsers", new ResultHandler<User>() { @Override public void handleResult(ResultContext<? extends User> resultContext) { //获取当这条数据封装好的User对象 User user = resultContext.getResultObject(); //按照自己的要求的方式进行封装 map.put(user.getId(), user.getName()); } }); map.forEach((k,v)->System.out.println(k+" : "+v)); } catch (Exception e) { e.printStackTrace(); } }
原文链接:https://www.cnblogs.com/Magic-Li/p/11687631.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- MyBatis中的$和#,用不好,准备走人! 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- Spring Cloud Gateway 全局通用异常处理 2020-06-08
- 聊聊 OAuth 2.0 的 Token 续期处理 2020-06-08
- 天哪!手动编写mybatis雏形竟然这么简单 2020-06-06
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash