Подтвердить что ты не робот

Являются ли перечисления, поддерживаемые JDBC?

Я действительно не могу найти хороший пример отображения JDBC перечисления. Действительно ли enum поддерживается JDBC?

Я работаю с MySQL. У меня есть столбец перечисления, и я хотел бы сопоставить некоторые перечисления Java.

4b9b3361

Ответ 1

JDBC не поддерживает перечисления.

Вы можете преобразовать строку в перечисление, хотя, поэтому, если у вас есть перечисление Java, вы можете сделать что-то вроде

 MyEnum enumVal =  MyEnum.valueOf(rs.getString("EnumColumn"));

Однако вам нужно будет поддерживать пересылку java и mysql enum. MyEnum.valueOf() может вызывать IllegalArgumentException, если нет отображения из строки или NullPointerException, если вы получаете нулевое значение из db.

Ответ 2

Вот некоторое общее решение, которое использовалось при преобразовании значений JDBC в перечисления Java.

param = Enum.valueOf((Class<? extends Enum>)dbField.getField().getType(), (String) param);

где param - значение поля в db, а dbField - это java.reflect.util.Field, где значение