1. 在使用Mybatis开发Mapper接口时,多个参数按照管理我们通常加上@param注解,那么到底为什么呢?这篇文章助你解惑。

一、实现逻辑

MyBatis在执行之后为mapper接口动态生成实现类,而在Java中使用反射会将方法中的参数名称擦除也就是说不保留字段名。所以如果在xml中要接收到规定参数名称的参数,通过注解标识是简单又可行的方法,一方面可以自定义方法参数的绑定,另外一方面在xml中也可以起有意义的名称与@Param中的value对应。

二、官方文档的解释

如果你的映射方法接受多个参数,就可以使用@Param注解自定义每个参数的名字。否则在默认情况下,除 RowBounds 以外的参数会以 “param” 加参数位置被命名,例如 #{param1}, #{param2}。如果使用了 @Param("person"),参数就会被命名为 #{person}