2009-02-04 27 views
8

Basit bir uygulamanın durumunu kaydetmenin en iyi yolunu bulmaya çalışıyorum. DB bakış açısından, tarih alanlarına ve ders dışı ilişkilere sahip 4/5 tablo var. Uygulamanın basit ve ben kullanıcı etrafında (usb kalem, Dropbox vs.) veri taşıma seçeneğine sahip olmasını istiyorsunuzBir Java uygulamasında verileri kaydetmenin en iyi yolu?

Çünkü, tek bir dosyada tüm verileri koymak istedim.

Bunu yapmanın en iyi yolu/lib nedir?

XML, bunun için genellikle en iyi biçimdir (okunabilirlik & açıklık), ancak SAX/DOM yapmadan bunun için harika bir kitap bulamadım.

cevap

11

XML'i kullanmak istiyorsanız, XML nesnelerini XML'ye basit bir şekilde serileştirmek için XStream'a bakın. İşte "Two minute tutorial". Eğer basit bir şey istiyorsanız

, standart Java Properties format da/saklamak bazı küçük verilerini yüklemek için bir yol olabilir. Eğer düşünebilirsiniz

+1

java.util.Properties ayrıca XML yapar. –

+0

XStream tam aradığım şey gibi görünüyor. Bu lib'deki yazıları optimize etmek için mevcut herhangi bir kodu biliyor musunuz? Her değişiklikte diske yazmamalıyım. – fabiopedrosa

+0

Yazımı başlatmak tamamen size kalmış. XStream sizin için herhangi bir otomatik kaydetme yapmayacaktır. –

0

2 diğer seçenekler -

  • HSQLDB java ile yazılmış küçük bir sql db olduğunu. Daha alakalı amaçlarla, bunun veri deposu olduğu gibi basitçe bir csv dosyasına yazma şekilde yapılandırılabilir, böylece makul o eğer ne tercih olduğunu, taşınabilir veri deposuna gibi metin çıktısı var ve hala sql kullanmak kullanabilirsiniz .
  • İkinci seçenek, veri mağazasını doğrudan seri olarak dosyasına ya da prevayler gibi bir kitaplığı aracılığıyla yazmak olabilir. Çok iyi performans ve uygulanması kolay, eksileri, biçiminin kırılganlığı ve opaklığıdır.

Ancak veriler yeterince küçükse, xml muhtemelen daha az rahatsız olur.

1

JDK ile gelen düz JAXB ek açıklamaları kullanmayı düşünün:

burada
@XmlRootElement 
private class Foo { 
    @XmlAttribute 
    private String text = "bar"; 
} 

JAXB bu basit kullanımı konusunda daha fazla ayrıntı veren blog-post of mine var (o da daha "klas" JAXB dayalı bir yaklaşım bahsetmektedir - durumunda daha sonra XML muhtemelen yanlış bir seçimdir verilerinize semantik anlam sağlamak gerekmiyorsa)

+0

XStream ile arasındaki fark nedir? – lony

0

geriye uyumluluk garanti etmek örn XML şema üzerinde daha iyi kontrol gerekir. Veri yapıları için daha doğal olarak üretilen yağsız alternatif JSON'u kullanmanızı tavsiye ederim.

+0

JSON, serileştirmek için ağrıyor. Güçlü yazım yok, veri yapısını bilmeniz gerekir.Zor bir oyun kesici, ama Java veri saklama için denediğimde zayıf hissettim. – Tim

İlgili konular