2010-07-01 12 views
20

Realmente no puedo encontrar un buen ejemplo de asignación enum JDBC. ¿Enum es realmente compatible con JDBC?¿Las enumeraciones son compatibles con JDBC?

Estoy trabajando con MySQL. Tengo una columna enum y me gustaría asignarme a alguna enumeración Java.

Respuesta

23

JDBC no admite enums.

Usted puede convertir una cadena en una enumeración, así que si usted tiene una enumeración de Java que puede hacer algo como

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

Vas a tener que mantener su enumeración de java y mysql enumeración en sincronía sin embargo. MyEnum.valueOf() puede lanzar IllegalArgumentException si no hay mapeo desde la cadena, o NullPointerException si obtienes un valor nulo de la base de datos.

1

Aquí hay alguna solución genérica que se está usando para convertir valores JDBC a enums de Java.

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

donde parámetro es el valor del campo en el PP y el dbField es la java.reflect.util.Field, dónde poner el valor a

Cuestiones relacionadas