Spring Boot 整合MyBatis Plus及常见注解解析
在Spring Boot中整合MyBatis Plus可以极大地方便数据库操作。MyBatis Plus是MyBatis的增强工具,它简化了CRUD操作,并提供了一些实用的功能。以下是Spring Boot整合MyBatis Plus,并解析一些常见注解的步骤和信息:
1. 添加依赖
在pom.xml
中添加MyBatis Plus和相关数据库驱动依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
<!-- 添加对应的数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
2. 配置数据源
在application.yml
或application.properties
文件中配置数据源信息:
spring:
datasource:
url: jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC
username: your_username
password: your_password
driver-class-name: com.mysql.cj.jdbc.Driver
3. 配置MyBatis Plus
可以创建一个MyBatis Plus配置类,进行一些默认配置:
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyBatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
}
}
4. 创建实体类
创建一个实体类并使用@TableName
指定数据库表,@TableId
指定主键:
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("user")
public class User {
@TableId
private Long id;
private String name;
private Integer age;
private String email;
}
5. 创建Mapper接口
Mapper接口继承自BaseMapper
,不用编写CRUD方法:
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
6. 使用Mapper接口
在服务层或者控制器中可以直接使用@Autowired来注入Mapper接口,并直接调用CRUD方法:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> getAllUsers() {
return userMapper.selectList(null);
}
public void addUser(User user) {
userMapper.insert(user);
}
// 其他CRUD方法...
}
常见注解解析
@TableName
: 指定实体类对应的表名。@TableId
: 指定数据库表的主键字段。@TableField
: 指定非主键字段,或者用来设置某些字段不持久化。@Version
: 用于乐观锁的版本控制字段。@TableLogic
: 用于逻辑删除字段。
以上是Spring Boot结合MyBatis Plus的基本步骤和一些常见注解的解析。MyBatis Plus还提供了一些其他特性如分页查询、动态SQL等,非常适合在Spring Boot项目中使用。