在IDEA装MyBatisX插件后,进行数据查询返回一个Map集合时接口方法名出现红色波浪线的的原因及其解决方法&原理

本文讲述了在使用MyBatisX插件开发Java项目时,遇到返回Map类型查询结果接口名报红的问题。通过添加MapKey注解并理解其含义,解决了提示问题,但同时也揭示了主键ID在结果中的特殊作用以及注意事项。
摘要由CSDN通过智能技术生成

        在IDEA工具进行Java开发时,可以装各种各样的插件,其中就包括MyBatisX插件:

        这个插件可以在左侧导航栏的接口处和映射文件处各自出现一个小鸟图标,让我们对项目结构一目了然。但是前几日在开发时出现了一个问题,就是在进行返回值为一个Map集合的数据库查询时,在接口类的方法名会报红,但是却并不影响查询结果:

        虽然对结果并不影响,但是却看起来很不舒服。。。。。。

        若是想解决这个方法名报红的问题,可以在方法名上面加一个注释(其中”id“为表中的主键id):

        但是查询结果就出问题了:

        此时,我的心情就像。。。。。

        开玩笑,还是要用的。下面就分析一下这个问题的原因和解决方式

        首先,不加注释,它会提示:

        就是提示我们添加MapKey

        然后我们加上去,并且点进去去看看MapKey详情

        

        可以看到,它提示“运行时有效”,“作用于方法之上”,没有默认值的情况下必须为“value”赋值

        此时,我们将测试类的代码修改一下,直接打印Map,会得到:

        

        

        会发现,测试正常了,但是貌似多了那么一点东西,那就是在结果前面多出了一个主键id

        而且得出的结果也变成了一个“{key = value}”的map集合,而“key”就是我们加在注解上的id的值。

        既然是这样,把注解上的id换成其他的列名,如“username”会发生什么呢?

        果然,会变成username的值

        但是要注意,不建议使用除了主键id以外的其他属性,因为主键id具有唯一性,而其他的属性会出现重复的情况,会出现结果被覆盖的情况。        

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梨汁Lzz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值