2010-07-01 4 views

Répondre

23

JDBC ne prend pas en charge les énumérations.

Vous pouvez convertir une chaîne à un ENUM, donc si vous avez un enum Java vous pouvez faire quelque chose comme

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

Vous devez garder votre java ENUM et mysql ENUM en synchronisation bien. MyEnum.valueOf() peut lancer IllegalArgumentException s'il n'y a pas de mappage à partir de la chaîne, ou NullPointerException si vous obtenez une valeur nulle à partir de la base de données.

1

Voici une solution générique que nous utilisons pour convertir des valeurs JDBC en enums Java.

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

où param est la valeur du champ dans la DB, et le dbField est le java.reflect.util.Field, où mettre la valeur à

Questions connexes