Mybatis:mapper接口中的@Param

本文探讨了MyBatis中@param注解的使用,澄清了一些常见的误解。即使不使用@param,mapper接口仍能接受多个参数且不限制类型。然而,不使用@param时,SQL语句需直接引用字段,而使用后则需通过‘对象.字段’方式。建议为避免潜在问题,始终在mapper方法中添加@param注解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mybatis的@param注解在mapper接口(dao层)的参数中使用

使用与否的区别

不使用@param:

  1. 只能有一个参数
  2. 该参数只能为Javabean类型(即参数只能是对象)
  3. sql语句只能使用 # 获取参数值
  4. 在SQL语句中,可以直接获取对象的字段,而不需要使用“对象.字段”的形式(这样使用反而会报错)

注:

  • 这三种限制中前两种是网上广为流传的,但是在我的实际使用中发现并不是这样,即使不使用@param注解,mapper方法中也可以使用多个参数且并没有类型的限制,xml中的SQL语句可以正常接收,出现这种情况可能跟mybatis的版本有关
  • 第四种情况是我自己遇到的:若不使用@param注解,则sql语句应该直接获取字段

使用@param:

  1. 可以有多个参数
  2. 参数类型没有限制
  3. sql语句可以使用 # 或者 $ 获取参数值
  4. 若参数为对象,在SQL语句中,需要使用“对象.字段”的形式获取对象的字段值

另外:在网上查资料的时候,发现似乎还有很多种情况需要使用@param注解,比如使用动态sql,只是没有自己验证过

以上,为避免麻烦,建议在使用mybatis时,mapper中的方法都为参数添加上@param参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值