Mybatis中 @Param注解 的作用

1.@Param是什么?

MyBatis所提供的作为Dao层的注解,作用是用于传递参数,从而可以与SQL中的的字段名相对应。 简单点说,就是对参数进行命名,你可以取别名,也可以使用当前参数进行命名,然后Mybatis通过参数的名称,在拼接SQL语句的时候进行对号入座。

2.为什么要使用@Param

 因为Java没有保存形参的记录 

例如  int queryFanCountInfo(String startTime, String endTime, String path);

就相当于 queryFanCountInfo(arg0,arg1,arg2) 参数只能根据索引0,1来进行区分。那我们在xml里进行sql的拼接的时候就只能使用#{0},#{1}的方式这样就会导致参数的混乱。所以Mybatis 就提供了一个注解@Param对参数进行命名,便于区分。

3.如果没有使用@Param 会发生什么

   /**
     * 查询粉丝数 本月、昨日、今日
     *
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @param path      路径
     * @return int
     * @author yulele
     * @date 2023/3/30 15:01
     */
     int queryFanCountInfo(String startTime, String endTime, String path);

//报错日志
nested exception is org.apache.ibatis.binding.BindingException:
 Parameter 'endTime' not found. Available parameters are 
[path, enTime, startTime, param3, param1, param2]

没有添加@Param参数的话,Mybatis在进行sql操作的时候找不到对应的参数,导致报错。

总结

所以当我们所以需要传输的参数大于一个时候,就需要加上@Param注解。

Page<FansTeamDto> queryTeamInfoWarehouse(@Param("queryParams") FansRequestParams queryParams, Page<UserExtension> userExtensionPage);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值