JDBC 支持枚举吗?
我真的找不到一个很好的枚举 JDBC 映射示例。 JDBC 实际上支持枚举吗?
我正在使用 MySQL。我有一个枚举列,并且想映射到一些 Java 枚举。
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 Java enum.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
JDBC 不支持枚举。
不过,您可以将字符串转换为枚举,因此,如果您有 Java 枚举,您可以执行类似的操作,
但您必须保持 java 枚举和 mysql 枚举同步。如果没有来自字符串的映射,MyEnum.valueOf() 可能会抛出 IllegalArgumentException;如果从数据库获取空值,则可能会抛出 NullPointerException。
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
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.
下面是一些用于将 JDBC 值转换为 Java 枚举的通用解决方案。
其中 param 是 db 中字段的值, dbField 是 java.reflect.util.Field ,将值放在哪里
Here is some generic solution were are using in converting JDBC values to Java enums.
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