springboot+mybatis-plus Enum 类型属性(enum的类包含,code和name)怎么把code插入到数据库
时间: 2024-11-10 09:25:26 浏览: 13
在Spring Boot项目中,结合MyBatis-Plus处理Enum类型的属性(例如`CodeEnum`),当你需要将枚举常量的值(如code)插入数据库时,可以按照以下步骤操作:
1. 首先,在你的枚举类`CodeEnum`中,给每个枚举成员赋一个自增的整数值作为code。例如:
```java
public enum CodeEnum {
VALUE1(1),
VALUE2(2),
// 其他枚举值...
@Mapper阿里巴巴默认值
DEFAULT_VALUE(0);
private Integer code;
CodeEnum(Integer code) {
this.code = code;
}
public Integer getCode() {
return code;
}
}
```
2. 确保在MyBatis-Plus的全局配置中启用EnumTypeHandler,这通常是通过全局通用Mapper配置文件(全局Config.xml或GlobalConfig.java)完成。添加以下内容:
```xml
<global-config>
<enable-jdbc-params>true</enable-jdbc-params>
<!-- 这里启用EnumTypeHandler -->
<typeHandlers>
<typeHandler handler="com.baomidou.mybatisplus.extension.typehandler.EnumTypeHandler"/>
</typeHandlers>
</global-config>
```
或者在Java配置中:
```java
@MapperScan("com.example.mapper")
public class MybatisPlusConfig extends GlobalConfig {
@Override
protected void initGlobalSettings(GlobalConfiguration globalConfig) {
globalConfig.setTypeHandlerPackage("com.baomidou.mybatisplus.extension.typehandler");
}
}
```
3. 在实体类中引用Enum类型:
```java
import com.example.CodeEnum;
...
private CodeEnum status; // 或其他Enum字段
// 如果字段是枚举列,可以这么设置自动映射
@TableField(type = ColumnType.ENUM)
private CodeEnum yourEnumColumn;
```
4. 当在Service层保存数据时,可以直接将枚举值赋给字段:
```java
yourEntity.setStatus(CodeEnum.VALUE1);
```
5. 使用MyBatis-Plus的CRUD操作方法(如insert、update等)保存实体,MyBatis-Plus会自动将Enum的code值转换为对应的整数形式插入数据库。
阅读全文