为什么不加这个注解之后运行会报如图错误呢?

为什么不加这个注解之后运行会报如图错误呢?

# 具体遇到的问题

# 报错信息的截图
http://img1.sycdn.imooc.com//climg/5fe83b0109530be733971122.jpg

http://img1.sycdn.imooc.com//climg/5fe83b8909c1a6e934791043.jpg

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

在这里输入代码,可通过选择【代码语言】突出显示

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕阿慧 2020-12-27 17:18:43

同学你好,@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中。

selectListForCusomer中有动态sql语句,需要对keyword和categoryIds判断是否为null,这时需要加上@Param注解,给参数命名,否则无法获得key和categoryIds值,判断是否为null。

祝学习愉快~

  • 提问者 慕函数6488525 #1

    ​那上面selectByName这个方法的name参数为什么不用加@Para呢?这个在对应的xml里不是直接使用的参数名字name获取值吗?那为什么selectListForCusomer就要加上注解呢?


    2020-12-28 14:15:14
  • 好帮手慕阿慧 回复 提问者 慕函数6488525 #2

    同学你好,selectByName()方法对应的sql语句中没有动态sql语句,所以可以不加@Param。selectListForCusomer()方法中有动态sql语句,如使用<if>标签判断keyword是否为null,所以需要加@Param注解。

    如下:

    http://img1.sycdn.imooc.com//climg/5fe98c0c091f8bf007650403.jpg

    祝学习愉快~

    2020-12-28 15:41:26
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师