@Mapper 注解
@Mapper
注解是 MyBatis 框架中的注解,主要用于将一个接口标记为 MyBatis 的 Mapper 接口。该注解告诉 MyBatis 框架,这个接口中的方法与数据库的 SQL 操作相关,并且 MyBatis 将自动为这些方法生成实现代码。
主要功能
-
Mapper接口标识:
@Mapper
注解用于标记一个接口为 MyBatis 的 Mapper,这样 Spring 或 MyBatis 可以自动扫描并注册该接口为 Mapper,供依赖注入使用。
-
简化配置:
- 使用
@Mapper
注解可以省去在 MyBatis 配置文件中显式注册 Mapper 的步骤,不需要通过 XML 文件去声明 Mapper 接口,减少了配置的复杂性。
- 使用
-
结合Spring:
- 在 Spring 项目中,
@Mapper
注解通常与 Spring 的组件扫描机制结合使用,通过自动装配的方式,将 Mapper 接口与 MyBatis 的 SQL 映射关联起来。
- 在 Spring 项目中,
使用示例
1. 在接口中使用 @Mapper
注解
package org.example.spring_mybatis.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.example.spring_mybatis.pojo.User;
@Mapper
public interface UserMapper {
int insert(User user);
}
2. 在 Spring 配置类中启用 Mapper 扫描
在 Spring 应用中,可以使用 @MapperScan
注解,指定要扫描的 Mapper 接口包路径。这样,即使没有 @Mapper
注解,MyBatis 也能自动扫描并注册 Mapper 接口。
package org.example.spring_mybatis.config;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@MapperScan("org.example.spring_mybatis.mapper")
public class MyBatisConfig {
// MyBatis 配置
}
工作机制
-
接口注解标识:
- 当接口上加上
@Mapper
注解后,Spring 和 MyBatis 框架会识别该接口为 Mapper 接口,并在应用启动时自动生成其实现类。
- 当接口上加上
-
自动装配:
- Spring 会自动装配 Mapper 接口,开发者可以通过依赖注入的方式使用这些接口,调用相关的数据库操作方法。
-
SQL 映射:
- MyBatis 会根据接口中的方法名称和参数,找到对应的 SQL 映射文件或者注解,执行相应的 SQL 操作。
优点
- 简化配置:通过
@Mapper
注解,无需在 XML 文件中手动配置 Mapper。 - Spring 集成:与 Spring 集成时可以方便地使用依赖注入和自动装配机制。
- 灵活性:结合注解或 XML,既保留了灵活的 SQL 控制,又简化了开发过程。
@Mapper
注解使得 MyBatis 更加易于与 Spring 框架集成,大大简化了持久层的开发。