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

Похоже, вы используете версию Spark, в которой нет различных jar-файлов MapR в пути к классам. Трудно сказать, поскольку вы не предоставляете никакой информации о том, какую версию программного обеспечения вы используете.

Вы пробовали использовать версию MapR?

25
задан Jonas 9 November 2011 в 20:43
поделиться

2 ответа

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

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

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

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

30
ответ дан 28 November 2019 в 21:37
поделиться

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

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

где param - значение поля в базе данных, а dbField - java.reflect.util.Field, куда нужно поместить значение

2
ответ дан 28 November 2019 в 21:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: