Are enums supported by JDBC?

后端 未结 2 529
情歌与酒
情歌与酒 2021-02-11 20:14

I really can\'t 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

相关标签:
2条回答
  • 2021-02-11 20:53

    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

    0 讨论(0)
  • 2021-02-11 21:11

    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.

    0 讨论(0)
提交回复
热议问题