mybatis:嫌弃resultType很久,殊不知resultType才是无敌的存在!!

来源:互联网  责任编辑:小易  时间:2017/1/11 15:28:15
用户提出问题:mybatis:嫌弃resultType很久,殊不知resultType才是无敌的存在!!,具体如下:

通过互联网整理获得以下解决方法:

=================1楼=====================

不明嚼个厉。

=================2楼=====================

如果看不到合适的地方用合适的类型,那么就还没学明白

=================3楼=====================

你要知道:写起来方便用起来难受,写起来麻烦用起来舒服

=================4楼=====================

返回值是不建议使用map的,前几天看的阿里的开发规范,是严格禁止使用map作为返回值的。
该费时间去写的,你还是得花点时间。

=================5楼=====================

引用 4 楼 zwy0123 的回复:
返回值是不建议使用map的,前几天看的阿里的开发规范,是严格禁止使用map作为返回值的。
该费时间去写的,你还是得花点时间。

唉,为啥哩

=================6楼=====================

引用 3 楼 u011320740 的回复:
你要知道:写起来方便用起来难受,写起来麻烦用起来舒服

用起来也挺方便的感觉

=================7楼=====================

resultType一对多不是很方便,不如resultMap,其他的倒没什么。

=================8楼=====================

用Map返回结果不适合拓展,你的方法自己用可以,给别人用还要看你的SQL里返回了什么,在清单功能里,用Map返回查询结果不方便用反射写文件。

=================9楼=====================

一对多还是用resultMap好些

=================10楼=====================

引用 7 楼 m2200 的回复:
resultType一对多不是很方便,不如resultMap,其他的倒没什么。

一对多也照样查的出来吧,比如  1个用户 2个订单  ,就查询出两条记录      用户a  订单1    ,用户a 订单2 ,这样前台展示也方便
如果是resultMap的话 是这样的:
用户a(订单1、订单2),我有个疑问,不太明白,这样的话,前台页面要怎么通过循环展示结果列表?求教

=================11楼=====================

引用 10 楼 x18094 的回复:
Quote: 引用 7 楼 m2200 的回复:

resultType一对多不是很方便,不如resultMap,其他的倒没什么。

一对多也照样查的出来吧,比如  1个用户 2个订单  ,就查询出两条记录      用户a  订单1    ,用户a 订单2 ,这样前台展示也方便
如果是resultMap的话 是这样的:
用户a(订单1、订单2),我有个疑问,不太明白,这样的话,前台页面要怎么通过循环展示结果列表?求教


是的,你也知道是这种结果,不能合并一的那一方,多的那一方是几,就查出几条记录,你要手动写代码合并。

直接拿你查出来的结果集在页面上显示出来,还不重复,太难,不如手动合并下。

思路是根据一的那一方的主键ID来合并,ID相同的合并。

=================12楼=====================

 还有就是类型转换问题,你直接用map,有些值的类型转换后不是你想要的类型,就会出现问题。

反例:某同学为避免写一个<resultMap>,直接使用 HashTable 来接收数据库返回结果,结果
出现日常是把 bigint 转成 Long 值,而线上由于数据库版本不一样,解析成 BigInteger,导
致线上问题。

=================13楼=====================

引用 11 楼 m2200 的回复:
Quote: 引用 10 楼 x18094 的回复:

Quote: 引用 7 楼 m2200 的回复:

resultType一对多不是很方便,不如resultMap,其他的倒没什么。

一对多也照样查的出来吧,比如  1个用户 2个订单  ,就查询出两条记录      用户a  订单1    ,用户a 订单2 ,这样前台展示也方便
如果是resultMap的话 是这样的:
用户a(订单1、订单2),我有个疑问,不太明白,这样的话,前台页面要怎么通过循环展示结果列表?求教


是的,你也知道是这种结果,不能合并一的那一方,多的那一方是几,就查出几条记录,你要手动写代码合并。

直接拿你查出来的结果集在页面上显示出来,还不重复,太难,不如手动合并下。

思路是根据一的那一方的主键ID来合并,ID相同的合并。

那就说 多对一的时候  是没问题的,就是需求要求就要这样显示的时候,  a   1    a   2

=================14楼=====================

引用 12 楼 zwy0123 的回复:
 还有就是类型转换问题,你直接用map,有些值的类型转换后不是你想要的类型,就会出现问题。

反例:某同学为避免写一个<resultMap>,直接使用 HashTable 来接收数据库返回结果,结果
出现日常是把 bigint 转成 Long 值,而线上由于数据库版本不一样,解析成 BigInteger,导
致线上问题。

好吧~~~

=================15楼=====================

引用 12 楼 zwy0123 的回复:
 还有就是类型转换问题,你直接用map,有些值的类型转换后不是你想要的类型,就会出现问题。

反例:某同学为避免写一个<resultMap>,直接使用 HashTable 来接收数据库返回结果,结果
出现日常是把 bigint 转成 Long 值,而线上由于数据库版本不一样,解析成 BigInteger,导
致线上问题。
不错的经验,收下了

=================16楼=====================

引用 12 楼 zwy0123 的回复:
 还有就是类型转换问题,你直接用map,有些值的类型转换后不是你想要的类型,就会出现问题。

反例:某同学为避免写一个<resultMap>,直接使用 HashTable 来接收数据库返回结果,结果
出现日常是把 bigint 转成 Long 值,而线上由于数据库版本不一样,解析成 BigInteger,导
致线上问题。


受教了

=================17楼=====================

我们公司分布式开发,模块之间前期都是用map取值,然后沟通成本大大提升。

=================18楼=====================

每个类型的存在都是有特定意义的, 还是要区分场景。

如果您还有更好的解决方法,请在最下面评论中留下您的解决方法


  • 本文相关:
  • 站长必读,如何真正写好一篇原创文章
  • 互联网之路细嗅蔷薇 资深站长分享掘金之道
  • 企业站的站长的工作重心究竟有哪些
  • 浅析:行业门户网站的一些盈利模式
  • 3000IP的企业网站每天订单不到30个的苦恼
  • 网站想内外兼修?先学习提高网站可用性的6大原则
  • 浅谈网页设计中的简约之美
  • 网页改版实战:日本设计师如何彻底优化旅游网站?
  • 网页改版实战!日本设计师如何彻底优化招聘网站?
  • 2015年值得关注的21个网页设计趋势
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2015 www.zgxue.com All Rights Reserved