2009-10-28 33 views

cevap

9

MySQL, enum türünü sorgu için dize olarak ele alır. Yani buna PreparedStatement.setString() yöntemi kullanmak ve numaralandırma adı geçmesi gerekir:

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

Bu, elbette, senin java için isimler ve MySQL çeteleler maçı varsayar.

Uyarı:name() docs başına yerine olarak toString() seçildi:

adı() Bu yöntem öncelikle doğruluğu tam adını alma bağlıdır uzman durumlarda kullanılmak üzere tasarlanmıştırserbest bırakılmaya kadar değişmeyecek.

1

Bunu yapabileceğini (daha fazla yer ve performans dostu olan) tamsayı olarak saklamak tercih ederseniz:

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

Bu, basitlik sağlar, ancak, koddaki enum öğelerinin sırasını değiştirmediğinizden emin olmalısınız, çünkü db'de depolananlarla ilişkilerini bozacaktır.