Поддерживаются ли перечисления JDBC? - PullRequest
23 голосов
/ 01 июля 2010

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

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

Ответы [ 2 ]

26 голосов
/ 01 июля 2010

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

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

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

У вас будетчтобы синхронизировать ваши перечисления java и mysql.MyEnum.valueOf () может выдать исключение IllegalArgumentException, если нет сопоставления из строки, или NullPointerException, если вы получите нулевое значение из БД.

1 голос
/ 07 июля 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...