Tengo un gran árbol de objetos Java en mi aplicación de escritorio y estoy tratando de decidir sobre la mejor manera de mantenerlos como un archivo en el sistema de archivos.¿Cuál es la mejor manera de conservar datos en una aplicación de escritorio Java?
Algunos pensamientos que he tenido fueron:
rueda mi propia serializador usando DataOutputStream: Esto me daría el mayor control de lo que era en el archivo, pero a costa de la microgestión de la misma.
Straight old serialización utilizando ObjectOutputStream y sus diversas clases relacionadas: aunque no me han vendido, los datos me parecen frágiles. El cambio de la estructura de cualquier objeto rompe las instancias serializadas de la misma. Así que estoy encerrado en lo que parece ser una horrible pesadilla de control de versiones.
serialización XML: No es tan frágil, pero es significativamente más lento que la serialización de forma recta. Se puede transformar fuera de mi programa.
JavaDB: Consideré esto porque me siento cómodo escribiendo aplicaciones JDBC. La diferencia aquí es que la instancia de la base de datos solo persistiría mientras se estaba abriendo o guardando el archivo. No es bonito, pero ... se presta para migrar a una arquitectura de servidor central si surge la necesidad más tarde e introduce la posibilidad de cuestionar el modelo de datos de una manera más simple.
Tengo curiosidad por ver lo que otras personas piensan. Y espero haber perdido un enfoque obvio y más simple que los anteriores.
Éstos son algunos más opciones seleccionadas de las respuestas a continuación:
- Una base de datos de objetos - tiene significativamente menos infraestructura que se acerca ORM y realiza más rápido que un enfoque XML. gracias aku