2009-10-28 25 views

Respuesta

9

MySQL trata su tipo de enumeración como cadena de consultas. Por lo que debe ser capaz de utilizar PreparedStatement.setString() método y pasar el nombre de enumeración a la misma:

preparedStatement.setString(1, MY_ENUM.name()); 

Esto supone, por supuesto, que los nombres de su Java y MySQL enumeraciones partido.

Aviso:name() fue elegido en lugar de toString() como, por los documentos:

nombre()Este método está diseñado principalmente para su uso en situaciones especializadas donde la corrección depende de obtener el nombre exacto , que no variará de un lanzamiento a otro.

1

Si prefiere guardarlo como entero (que es más espacio y rendimiento amigable) que podría hacer esto:

preparedStatement.setInt (1, myEnum.ordinal());

Esto proporciona simplicidad, sin embargo, debe asegurarse de no cambiar el orden de los elementos enum en el código, ya que eso romperá su relación con lo que está almacenado en el archivo db.