java enum 写入mysql_Java枚举自动转换存入MySQL
时间: 2023-11-27 16:51:35 浏览: 93
Java中的枚举类型可以通过以下步骤将其存储到MySQL中:
1. 在MySQL数据库中创建一个包含枚举常量的列,例如:
```
CREATE TABLE example (
id INT NOT NULL AUTO_INCREMENT,
enum_col ENUM('VALUE1', 'VALUE2', 'VALUE3'),
PRIMARY KEY (id)
);
```
2. 在Java中定义一个枚举类型,并添加一个字段来保存枚举常量的值:
```
public enum ExampleEnum {
VALUE1("VALUE1"),
VALUE2("VALUE2"),
VALUE3("VALUE3");
private final String value;
ExampleEnum(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
```
3. 在Java中使用JDBC将枚举类型转换为字符串类型,并将其保存到MySQL中:
```
// 获取数据库连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/example_db", "username", "password");
// 准备SQL语句
String sql = "INSERT INTO example (enum_col) VALUES (?)";
PreparedStatement stmt = conn.prepareStatement(sql);
// 将枚举类型转换为字符串类型
ExampleEnum exampleEnum = ExampleEnum.VALUE1;
String enumValue = exampleEnum.getValue();
// 设置参数并执行SQL语句
stmt.setString(1, enumValue);
stmt.executeUpdate();
```
4. 在Java中从MySQL中读取枚举类型,并将其转换回Java中的枚举类型:
```
// 准备SQL语句
String sql = "SELECT enum_col FROM example WHERE id = ?";
PreparedStatement stmt = conn.prepareStatement(sql);
// 设置参数并执行SQL语句
stmt.setInt(1, 1);
ResultSet rs = stmt.executeQuery();
// 读取结果集并将其转换回Java中的枚举类型
if (rs.next()) {
String enumValue = rs.getString("enum_col");
ExampleEnum exampleEnum = ExampleEnum.valueOf(enumValue);
}
```
阅读全文