MyBatis和MyBatis-Plus可以一起配置并在同一个项目中使用。
MyBatis是一个基础的ORM框架,提供了灵活的SQL映射和数据库操作功能。
MyBatis-Plus是在MyBatis的基础上进行扩展的增强工具,提供了更多的便利特性和增强功能,比如通用CRUD操作、分页查询、逻辑删除等。
同时配置MyBatis和MyBatis-Plus,你需要按照以下步骤进行设置:
1.在项目中添加MyBatis和MyBatis-Plus的相关依赖项。例如,使用Maven构建项目时,在pom.xml文件中添加相应的依赖项。
2.在application.yml(或其他配置文件)中设置MyBatis和MyBatis-Plus的配置。根据需要分别设置它们的配置项,比如数据源、mapper文件位置、实体类包名等。
3.在Spring Boot的启动类上添加@MapperScan注解,指定MyBatis的mapper接口所在的包。这样,MyBatis就能够自动扫描并注册这些mapper接口。
下面是配置 MybatisPlus 的步骤:
1.添加 Maven 依赖:
<!-- MybatisPlus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>最新版本</version>
</dependency>
2.在 Spring Boot 的配置类中加上如下注解:
@MapperScan("com.example.demo.mapper")
以下是一个示例的配置类的代码:
@Configuration
@MapperScan("com.example.demo.mapper")
public class MybatisPlusConfig {
//...
}
其中 com.example.demo.mapper 是你的 Mapper 接口所在的包名,如果你的 Mapper 接口不在该包下,需要修改成相应的包名。
3.在 application.yml 或 application.properties 中添加 MybatisPlus 的配置信息:
mybatis-plus:
mapper-locations: classpath:mapper/*.xml # Mapper 映射文件的位置
global-config:
id-type: auto # 主键类型为自动递增
db-column-underline: true # 开启驼峰命名转换为下划线的功能
4.在 Mapper 接口中继承 BaseMapper 接口:
public interface UserMapper extends BaseMapper<User> {
//...
}
其中,User 是你的实体类,也就是对应数据库中表的映射类。
通过继承 BaseMapper 接口,UserMapper 就会自动获得一些 MybatisPlus 提供的基本数据操作方法,比如 selectList()、insert()、update()、delete() 等等。这些方法可以直接使用,无需再手动编写 SQL 语句。
5.最后,在 Service 层中就可以直接调用 MybatisPlus 提供的方法了,比如:
@Autowired
private UserMapper userMapper;
public List<User> getUserList() {
return userMapper.selectList(null);
}
这里的 selectList(null) 方法会返回表中的所有数据。
在 MyBatisPlus 中,@Mapper 注解主要起到了以下作用:
1. 标识接口作为 MyBatis 的 Mapper 接口:
当我们在一个接口上使用 @Mapper 注解时,它标志着该接口是一个 MyBatis 数据访问层的 Mapper 接口。MyBatis 通过 MapperScannerConfigurer 或者 Spring Boot 自动配置中配合 @MapperScan 注解扫描指定包路径下的类,识别出带有 @Mapper 注解的接口,并为其生成代理实现类。
2. 组件扫描与依赖注入:
在 Spring 环境下,@Mapper 注解帮助 Spring 容器识别并自动将这些接口注入到需要它们的 Bean 中,从而使得我们可以直接通过注解的方式定义 SQL 映射,并在 Service 层或 Controller 层通过Autowired等方式注入这个接口来执行数据库操作,而无需手动实例化或者编写 XML 映射文件。
3. 代码提示和编译期检查:
对于IDE(如 IntelliJ IDEA 或 Eclipse)而言,@Mapper 注解可以辅助 IDE 提供更好的代码提示和验证,让开发过程更加流畅。
总结来说,在 MyBatisPlus 框架中,@Mapper 注解代替了传统 MyBatis 中通过 XML 文件显式定义映射关系的做法,简化了开发流程,实现了接口和 SQL 映射的解耦,并有助于整合到基于注解和依赖注入的现代 Java 应用框架中。