以下是使用 MyBatis-Plus 进行通用枚举处理的简单步骤:
1. 定义枚举类型:
public enum GenderEnum {
MALE("Male", "男"),
FEMALE("Female", "女");
private String code;
private String desc;
GenderEnum(String code, String desc) {
this.code = code;
this.desc = desc;
}
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
}
在上述例子中,定义了一个表示性别的枚举类型 GenderEnum。
2. 使用通用枚举注解 @EnumValue:
在实体类中使用 @EnumValue 注解标注枚举字段,告诉 MyBatis-Plus 这是一个枚举字段。
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("user")
public class User {
private Long id;
private String name;
// 使用 @EnumValue 注解标识该字段是枚举字段
@EnumValue
private GenderEnum gender;
}
3. 数据库中的字段类型设置:
在数据库中,可以将枚举字段映射为存储枚举值的字段,例如可以使用 VARCHAR 类型。
CREATE TABLE user (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255),
gender VARCHAR(20)
);
在上述例子中,数据库表中的 gender 字段与 GenderEnum 枚举类型对应。
4. 使用枚举进行查询和插入:
在进行查询和插入时,MyBatis-Plus 会自动将数据库中的枚举值映射到对应的 Java 枚举类型。
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
public class UserService {
@Autowired
private IService<User> userService;
public List<User> listUsersByGender(GenderEnum gender) {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("gender", gender);
return userService.list(queryWrapper);
}
}
在上述例子中,通过枚举类型进行查询,MyBatis-Plus 会自动进行枚举值的映射。
使用通用枚举可以使代码更加清晰和可读,同时方便了数据库和 Java 枚举类型之间的转换。
转载请注明出处:http://www.pingtaimeng.com/article/detail/7060/MyBatis