Java枚举到预编译语句中的mysql枚举

Joh*_*nes 7 java mysql

使用常规语句(只是声明),我可以将java枚举放入查询中,它可以正常工作.准备好的声明我不能这样做?

Chs*_*y76 11

MySQL将其枚举类型视为查询字符串.所以你应该能够使用PreparedStatement.setString()方法并传递枚举名称:

preparedStatement.setString(1, MY_ENUM.name());
Run Code Online (Sandbox Code Playgroud)

当然,这假定您的java和MySQL枚举的名称匹配.

注意: 根据文档name()选择而不是toString():

name() 此方法主要用于特殊情况,其中正确性取决于获取确切名称,不会因发行版本而异.