SORU
23 EKİM 2008, PERŞEMBE


Veritabanında yolları çeteleler kurtarmak için

Bir veritabanına çeteleler kurtarmak için en iyi yolu nedir merak ediyorum.

name() valueOf() yöntem bir Dize geri alması olduğunu biliyorum. Ama (esnek) bu değerleri saklamak için başka seçenekler de var mı?

Benzersiz numaralar da akıllı bir şekilde (ordinal() Güvenli kullanım için değil) var mı?

Herhangi bir yorum ve öneriler yararlı olurdu :)

Güncelleme:

Harika ve hızlı cevap için teşekkürler! Tahmin ettiğim gibi oldu.

Ancak bir 'araç'; bir yoludur. not Ben sorun yaratmak, her numaralandırma türü ile aynı şekilde eklemek istiyorum. Yinelenen kod bir sürü, işte, şu anda, Java bu (numaralama diğer sınıfları genişletmek izin veremezsiniz) için herhangi bir çözüm desteklemiyor.

Ancak, tüm cevaplar için teşekkürler!

CEVAP
23 EKİM 2008, PERŞEMBE


Bizaslasayısal değerleri sıralı olarak Listeleme artık saklamak; hata ayıklama ve Destek Çok zor hale getirir. Gerçek numaralandırma değeri dizeye dönüştürülür saklıyoruz:

public enum Suit { Spade, Heart, Diamond, Club }

Suit theSuit = Suit.Heart;

szQuery = "INSERT INTO Customers (Name, Suit) "  
          "VALUES ('Ian Boyd', %s)".format(theSuit.name());

ve sonra yeniden okuyun:

Suit theSuit = Suit.valueOf(reader["Suit"]);

Sorun geçmiş Enterprise Manager bakıyor ve deşifre etmeye çalışıyordu:

Name                Suit
==================  ==========
Shelby Jackson      2
Ian Boyd            1

ayetler

Name                Suit
==================  ==========
Shelby Jackson      Diamond
Ian Boyd            Heart

ikincisi çok daha kolay. Eski kaynak kodu almak ve numaralandırma üyeleri için atanan sayısal değerler bulmak gerekli.

Evet fazla yer kaplıyor, ama numaralandırma üye adları kısa ve sabit diskler ucuz, ve bir sorun olduğunda çok daha fazla değer verir.

Eğer sayısal değerler kullanırsanız, ayrıca, onlara bağlısınız. Güzel edemiyor veya eski sayısal değerleri zorlamak zorunda kalmadan üyeleri yeniden düzenlemek. Örneğin, Kıyafet değiştirmek için numaralandırma:

public enum Suit { Unknown, Heart, Club, Diamond, Spade }

olmak gerekir :

public enum Suit { 
      Unknown = 4,
      Heart = 1,
      Club = 3,
      Diamond = 2,
      Spade = 0 }

eski sayısal değerleri veritabanında saklanan korumak için.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Joanna Okrajni

    Joanna Okraj

    4 EYLÜL 2010
  • jpmkm1

    jpmkm1

    4 NİSAN 2008
  • Xbox

    Xbox

    1 Kasım 2005