先说结论:以我们定义枚举的数据类型保存了
-
Java 枚举是一个特殊的类,一般表示一组常量.例如一周的七天,一年的12个月.
大多数用户一个字段的好多种类型,比如用户的在线,下线,匹配中,游戏中 等等的状态. -
枚举的一些操作
enum color {
红色, 绿色, 灰色
}
static class user {
String name;
color hairColor;
}
public static void main(String[] args) {
color[] values = color.values();
for (int i = 0; i < values.length; i++) {
System.out.println(values[i]);
}
color a = color.灰色;
System.out.println(color.灰色);
user user = new user();
user.setHairColor(color.灰色);
user.setName("小樱");
System.out.println(user.toString());
}
以上代码输出:
红色 绿色 灰色 灰色 user{name='小樱', hairColor=灰色}
- 关于枚举的一些问题
包含枚举的对象存入数据库的时候是以什么类型存储的?
在数据库创建用户表,hairColor 字段类型为 int 类型:
插入时数据库报错:
SQL: insert into user (name,hairColor)values (?,?)
Cause: java.sql.SQLException: Incorrect integer value: '灰色' for column 'hairColor' at row 1
将字段改为字符串类型:
后添加成功:
结论:虽然传入数据库的时候是枚举,但是还是以我们定义枚举的数据类型保存了