2009-10-28 27 views

Odpowiedz

9

MySQL traktuje swój typ wyliczeniowy jako ciąg do zapytań. Więc powinieneś być w stanie korzystać PreparedStatement.setString() metodę i przekazać enum nazwisko do niego:

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

Zakłada to oczywiście, że nazwy dla Twojego Java i wyliczenia MySQL mecz.

Wskazówka:name() został wybrany zamiast toString() jak, za docs:

nazwa()Sposób ten jest przeznaczony przede wszystkim do stosowania w specjalistycznych sytuacjach, gdy poprawność zależy uzyskanie dokładnej nazwy , które nie będą się różnić od wydania do wydania.

1

Jeśli wolisz, aby zapisać go jako liczba całkowita (która jest bardziej przyjazna przestrzeń i wydajność) można to zrobić:

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

Zapewnia to prostotę, jednak należy pamiętać, aby nie zmieniać kolejności elementów wyliczających w kodzie, ponieważ spowoduje to zerwanie ich relacji z tym, co jest przechowywane w bazie danych.