在 Java 开发中,尤其是使用 MyBatis 框架时,@Param
注解是一个非常常见和重要的注解。它主要用于在 Mapper 接口的方法中传递参数,并且在 SQL 映射文件中可以引用这些参数。
一、@Param 注解的作用
@Param
注解主要有以下几个作用:
- 为方法参数命名:在 Mapper 接口的方法中,给参数命名,使其在 SQL 映射文件中可以通过该名字引用。
- 解决参数名称冲突:当方法有多个参数时,使用
@Param
注解可以避免参数名冲突。
二、@Param 注解的基本用法
1. 单个参数
当方法只有一个参数时,可以直接使用 @Param
注解为参数命名。
在上述示例中,@Param("id")
为方法参数 id
命名,使其在 SQL 中可以通过 #{id}
引用。
2. 多个参数
当方法有多个参数时,可以使用 @Param
注解为每个参数命名,避免名称冲突。
在这个示例中,我们有两个参数 id
和 name
,通过 @Param
注解为每个参数命名,使其在 SQL 中可以分别通过 #{id}
和 #{name}
引用。
三、@Param 注解的高级用法
1. 使用对象作为参数
当方法参数是一个对象时,可以直接使用对象的属性,而无需 @Param
注解。
在此示例中,方法参数是一个 User
对象,我们通过 @Param("user")
注解为其命名,在 SQL 中可以通过 #{user.id}
和 #{user.name}
引用对象的属性。
2. 传递集合类型参数
当需要传递集合类型参数时,可以使用 @Param
注解为集合命名,并在 SQL 中引用。
在这个示例中,我们使用了一个 List<Integer>
类型的参数 ids
,通过 @Param("ids")
为其命名,并在 SQL 中通过 foreach
标签遍历集合,生成 IN
查询