Академический Документы
Профессиональный Документы
Культура Документы
DATOS EN JAVA
14
2.1 Introduccin
por la red.
relacionales. Las bases de datos relacionales han ofrecido por aos un modo seguro,
escalable y eficiente de almacenar los datos. Venus utiliza este sistema para
15
2.3 Usando la serializacin de objetos
Mahmoud explica que para serializar un objeto, este debe implementar la interfaz
Adems del propio objeto que va a ser serializado, tambin se debe usar un
I/O Stream, es decir, una clase que implementa un flujo de entrada/salida. Para
[Mahmoud, 2000]:
de salida. Este mtodo puede ser llamado cualquier nmero de veces para salvar
Serializable.
16
La lectura de objetos salvados es trivial. En el siguiente ejemplo se muestra
Object o = ois.readObject();
Cuando se leen objetos desde un flujo, se debe tener presente qu tipo de objetos
son esperados en el flujo, es decir, se han de leer en el mismo orden en que fueron
guardados.
implementacin de las clases de las libreras de Java puede ser diferente y por lo
tanto, ser incompatibles entre s en lo que respecta a serializacin. En [Sun Java 1.3
versiones entre diferentes versiones de una misma clase. Para mayor informacin
17
Tal y como aparece en [Sun Java 1.4 Swing, 2003], Sun no garantiza que los
objetos Swing serializados usando esta versin de Java sean compatibles con las
El prrafo anterior menciona que si un proyecto fue creado con una versin
viceversa). Si esos mismos proyectos los abrimos con la misma mquina virtual de
computadoras.
18
2.5 XML: persistencia de datos en Java
Existe una gran variedad de parsers XML que estn disponibles para
esquema. Las dos tecnologas dominantes para definir un esquema XML son
Los DTDs (Document Type Definition) se usan para definir la estructura del
19
Establecen las restricciones para un conjunto de documentos.
2.6 XML como formato para hacer persistentes los objetos Java
Standard Edition versin 1.4 (J2SE v1.4) cuando los objetos Java se pudieron
serializar como documentos XML. Con versiones anteriores a la versin 1.4 los
la interfaz Serializable).
todos sus datos (incluidos los campos que tambin son objetos) a un documento
20
Soporta cambios en las versiones: los objetos persistentes no tienen
igual que los ficheros fuente de Java, pueden ser intercambiados entre entornos
algoritmo de eliminacin de redundancia para que los valores por defecto de las
En principio, esta clase est pensada para JavaBeans pero tal y como se
delegados de persistencia con el fin de serializar como XML cualquier tipo de clase
estado de una instancia de una clase en trminos del API pblico de dicha clase
21
En nuestro contexto, un delegado de persistencia es una clase Java que crea
persistencia por defecto, pero exige que los objetos cumplan con una parte de la
mtodos get/set.
Por tanto, una alternativa es hacer que las clases a serializar sigan las
serializar el valor de cierto campo, pues no es importante para el estado del objeto o
Ejemplo:
22
Es decir, necesita parmetros y por tanto no cumple las restricciones del
e.setPersistenceDelegate(Font.class,
new DefaultPersistenceDelegate(
"style",
"size" }) );
otros casos en los que tambin se hace necesario crear delegados de persistencia
propios.
La clase XMLEncoder se puede utilizar para crear un documento XML que describa
23
XMLEncoder e = new XMLEncoder(
new BufferedOutputStream(
new FileOutputStream("Test.xml")));
e.close();
pasos que fueran necesarios para crear la copia. De esta manera XMLEncoder tiene
una copia de trabajo del grafo del objeto que imita los pasos que XMLDecoder
en que los objetos de una clase dada son codificados por un objeto XMLEncoder.
clase del objeto que codifican. Este mapa interno, de la clase al delegado de la
manera en que el codificador maneja clases particulares cuando las encuentra como
parte de un grafo que est codificando [Sun Java 1.4 XMLEncoder, 2003].
24
Para conocer mejor los detalles de cmo hacer esto, vase el mtodo
hace poco ms que buscar el delegado de persistencia apropiado para la clase del
<object class="Yoghurt">
<void property=peso">
<int>20</int>
</void>
<void property="sabor">
<string>vainilla</string>
</void>
</object>
</java>
peso. Los valores de dichos atributos para esta instancia de Yoghurt son,
25
O este otro [Persistente of JavaBeans, 2003] que representa un JPanel de
<object class="javax.swing.JPanel">
<void method="add">
</void>
<void method="add">
<object class="javax.swing.JLabel">
<void method="setLabelFor">
<object idref="button1"/>
</void>
</object>
</void>
</object>
XMLDecoder lo interpretara:
panel1.add(button1);
panel1.add(label1);
label1.setLabelFor(button1);
26
Y por tanto, se recreara el objeto JPanel inicial. La forma en que
XMLEncoder serializa los objetos Java como XML est definida mediante XML
2.7 Conclusiones
27