tags:

views:

66

answers:

2

Hi All

I really cant find a nice enum jdbc mapping example. Is enum actually supported by JDBC ?

I am working with Mysql , i have an enum column , and would like to map to some java enum.

Thanks

+4  A: 

JDBC does not support enums.

You can convert a string to an enum though, so if you have a Java enum you can do something like

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

You'll have to keep your java enum and mysql enum in sync though. MyEnum.valueOf() can throw IllegalArgumentException if there's no mapping from the string, or NullPointerException if you get a null value from the db.

nos
A: 

Here is some generic solution were are using in converting JDBC values to Java enums.

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

where param is the value of the field in the db , and the dbField is the java.reflect.util.Field , where to put the value to

Roman