MyBatis中的@Param注解主要用于为方法参数命名,以便在XML映射文件或注解SQL中引用
1、参数别名定义:通过@Param("别名")为方法参数指定名称,使得SQL中的#{别名}能准确匹配参数
2、多参数必选:当方法有多个参数时,若不使用`@Param,MyBatis默认无法识别参数名(编译后可能变为arg0、arg1),必须通过注解显式命名。
使用场景与示例
- 单参数:通常可省略
@Param,但若需在SQL中使用自定义名称仍需添加。 - 多参数:必须为每个参数添加
@Param,例如查询用户时同时匹配用户名和密码
简化方案(JDK8+)
启用编译选项-parameters可自动保留方法参数名,避免重复定义别名。需满足:
- JDK8及以上版本;
- 编译时添加
-parameters选项(如Maven配置<compilerArgs>)。
说明:基于官方骨架创建的springboot项目中,接口编译时会保留方法形参名,@Param注解可以
省略 (可以直接#{形参名})
在aliyun上创建的项目中@Param("别名")不能省略!!!!
浙公网安备 33010602011771号