SlideShare una empresa de Scribd logo
SERIALIZACION Y
PERCISTENCIA
EJEMPLO CLASE PERSONA
CON NETBEANS 6.8
SERIALIZACION y
CONOCIMIENTOS PREVIOS
 La serialización consiste en
codificar un objeto como una
secuencia de bytes para
almacenarlos en memoria o en
un archivo para poder guardar el
estado de los objetos aunque se
cierre el programa. Es utilizada
para conseguir persistencia entre
diferentes sesiones y para poder
transmitir objetos remotamente a
través diferentes máquinas de
una red, proceso conocido como
invocación remota de
objetos(RMI).
GETTER Y SETTER
 No son propios de java, pues son sobre todo una es “buena
costumbre” en la programación orientada a objetos en varios
lenguajes, y además son parte de la especificación de
JavaBeans.
 La razón de crear estos métodos, es debido a que habitualmente se
recomienda que los campos (o propiedades) de una clase sean de acceso
privado, es decir, únicamente desde el interior de la clase, y que para
accesar o modificar estos valores, se utilicen métodos públicos diseñados
para esa tarea. Estos son los denominados setters (set – modificar) y getters
(get – accesar).

Pongamos un ejemplo sencillo, suponiendo que debemos representar a una
persona en un objeto, la persona tendrá como datos “nombre, direccion, y
teléfono”. Crearemos entonces la clase y esos 3 campos, los cuales serán
de acceso privado, y crearemos los 3 métodos setters y los 3 métodos
getters para poder accesarlos y/o modificarlos.
3
 Se puede apreciar que los campos nombre, direccion y telefono son de
acceso privado. Los métodos setNombre, setDireccion y setTelefono,
son los setters para dichos campos, los cuales reciben como parámetro
el nuevo valor y lo asignan a la propiedad. Algo que tienen en común
éstos métodos es que son de tipo void, lo que quiere decir que no
retornan ningun dato, ya que sólo sirven para modificar la propiedad,
asignando el valor recibido en el parámetro. Los métodos getNombre,
getDireccion y getTelefono, son los métodos getters, y nos dan acceso
al valor actual de la propiedad, al retornarnos su dato almacenado.
Estos 3 métodos si poseen un tipo de datos de retorno, el cual depende
del tipo de la propiedad que están retornando. Tanto los setters como
los getters son métodos de acceso público y nos dan la posibilidad de
accesar y modificar los campos privados de la clase.
4
5
Persistencia en Java
 Un objeto se dice persistente cuando es almacenado en un
archivo u otro medio permanente. Un programa puede grabar
objetos persistentes y luego recuperarlos en un tiempo posterior.
 Java se provee un mecanismo de serialización para almacenar
objetos en disco.
 La serialización se obtiene llamando al método writeObject de la
clase ObjectOutputStream para grabar el objeto, para recuperarlo
llamamos al método readObject de la clase ObjectInputStream.
 La serialización además de persistencia, se puede usar para
transferir objetos desde una máquina a otra a través de un socket
(ELO330).
6
Interfaz Serializable
 Sólo objetos que implementen la interfaz Serializable pueden ser
escritos a stream. La clase de cada objeto es codificada
incluyendo el nombre de la clase y la firma de la clase (su
prototipo) los valores de los sus campos y arreglos, y la clausura
de cualquier otro objeto referenciado desde el objeto inicial.
 Para hacer que un objeto sea serializable, sólo debemos declarar
que implementa la interfaz serializable. Nada más. No hay
nétodos que debamos definir.
 Por razones de seguridad las clases no son serializable por
defecto.
 Hay que tener claro el orden y tipo de los objetos almacenados en
disco para recuperarlos en el mismo orden.
7
Ejemplo: Empleados serializables
 Class Employee implements Seralizable {....}
Employee staff = new Employee[3];
....
out.writeObject(staff);
 Luego podemos recuperar el objeto haciendo:
Employee[] newStaff=(Employee[])in.readObject();
 Sólo objetos pueden ser serializados con writeObject().
 Veamos el ejemplo ObjectFileTest.java
8
Tratamiento de referencia a objetos
 Múltiples referencias a un único objeto son codificadas usando un mecanismo de
referencias compartidas de modo que el “grafo” de objetos puede ser restaurado
con la misma forma original.
 Los métodos writeObject y readObject se encargan de crear y almacenar un
número de “serie” para cada objeto. De este modo objetos ya almacenados no son
grabados nuevamente.
 Supongamos que dada mánager tiene una secretaria. Dos mánager podrían
compartir la secretaria, en este caso tendriamos algo como:
 Si grabamos staff, no queremos
tres secretarias luego sino algo
equivalente a esta vista en memoria.
staff Employee
Name=“Eugenia”
Manager
Secretary=
Manager
Secretary=
9
Tratamiento de referencia a objetos
 Para ello Java utiliza el siguiente algoritmo para serializar (poner número
de series).
 A todos los objetos grabados a discos se les asigna un número de serie.
 Antes de grabar un objeto a disco se ve si ya ha sido grabado.
 Si ya ha sido grabado, se graba “lo mismo que el objeto con número de
series xxx”
 Sino, se almacena el objeto.
Employee
name=“Eugenia”
Manager
secretary=
Manager
secretary=
En disco:
Serial number=1
type=Employee
name=“Eugenia”
Serial number=2
type=Manager
secretary=objeto 1
Serial number=3
type=Manager
secretary=objeto 1
10
Mezcla de objetos serializables y
datos básicos
 Podemos hacerlo por medio de los métodos writeInt, readInt, etc dado que
ObjectOutputStream implementa la interfaz DataOutput. Análogo para la entrada.
De datos.
 Ejemplo: para escribir un objeto,
 FileOutputStream ostream = new FileOutputStream("t.tmp");
 ObjectOutputStream p = new ObjectOutputStream(ostream);
 p.writeInt(12345);
 p.writeObject("Today");
 p.writeObject(new Date());
 p.flush();
 ostream.close();
 La lectura se hace en forma análoga.
 FileInputStream istream = new FileInputStream("t.tmp");
 ObjectInputStream p = new ObjectInputStream(istream);
 int i = p.readInt();
 String today = (String)p.readObject();
 Date date = (Date)p.readObject();
 istream.close();
11
Cuando hay objetos no serializables
 Clases que requieren manejos especiales durante el proceso de
serialización o deserialización deben implementar los métodos:
 private void readObject(java.io.ObjectInputStream stream)
 throws IOException, ClassNotFoundException;
 private void writeObject(java.io.ObjectOutputStream stream)
 throws IOException
 Se aplica en casos que tengamos objetos que no sean
serializables (aquellos que tienen algún dato no serializable)
 Por ejemplo Point2D.Double no es serializable en Java.
 Para que no reclame el compilador, definimos nuestro dato
Point2D.Double como transiente (transient) y luego definimos los
métodos indicados.
12
Cuando hay objetos no serializables
 Ejemplo:
public class LabelPoint
{....
Private String label;
private transient Point2D.Double point;
}
 Luego implementamos:
private void writeObject(ObjectOutputStream out) throws IOException
{
out.defaultWriteObject();
out.writeDouble(point.getX());
out.writeDouble(point.getY());
}
private void readObject(ObjectInutStream in) throws IOException
{
in.defaultReadObject();
double x=in.readDouble();
double y=in.writeDouble();
point =new Point2D.Double(x,y);
}

Más contenido relacionado

La actualidad más candente

Serializacion
SerializacionSerializacion
Serializacion
Juan Pérez
 
Serialización de Objetos Java
Serialización de Objetos Java Serialización de Objetos Java
Serialización de Objetos Java
Alexander Jurado
 
Serialización de objetos en java
Serialización de objetos en javaSerialización de objetos en java
Serialización de objetos en java
Ivette Ramos
 
Jyoc java-cap14 persistencia. ficheros corrientes
Jyoc java-cap14 persistencia. ficheros corrientesJyoc java-cap14 persistencia. ficheros corrientes
Jyoc java-cap14 persistencia. ficheros corrientes
Jyoc X
 
3- Clases y Objetos
3- Clases y Objetos3- Clases y Objetos
3- Clases y Objetos
Luis Fernando Aguas Bucheli
 
03 Oop
03   Oop03   Oop
03 Oop
Network Sens
 
Programacion orientada a objeto
Programacion orientada a objeto Programacion orientada a objeto
Programacion orientada a objeto
frank yordi tejada sanchez
 
Lab herencia
Lab herenciaLab herencia
1 -programacion_oo
1  -programacion_oo1  -programacion_oo
1 -programacion_oo
Bernardo Cruz Martinez
 
Tipos de Variables en Java
Tipos de Variables en JavaTipos de Variables en Java
Tipos de Variables en Java
Aldemar Rosas
 
7-Unidad 2. Elementos de una Clase
7-Unidad 2. Elementos de una Clase7-Unidad 2. Elementos de una Clase
7-Unidad 2. Elementos de una Clase
Luis Fernando Aguas Bucheli
 
Calse 3 JAVA 2012
Calse 3 JAVA 2012Calse 3 JAVA 2012
Calse 3 JAVA 2012
José Braganza
 
Variables en java
Variables en javaVariables en java
Variables en java
lizandromezaudgvirtual
 
Contructores en java(grupo 8)
Contructores en java(grupo 8)Contructores en java(grupo 8)
Contructores en java(grupo 8)
Manuel Ch.
 
Jyoc java-cap17 persistencia. nio
Jyoc java-cap17 persistencia. nioJyoc java-cap17 persistencia. nio
Jyoc java-cap17 persistencia. nio
Jyoc X
 
Clases y Objetos
Clases y ObjetosClases y Objetos
Clases y Objetos
Xavier Ochoa
 
3 poo abstraccion modula..herencia
3 poo abstraccion modula..herencia3 poo abstraccion modula..herencia
3 poo abstraccion modula..herencia
Pedro Alvarez
 
Tipos de variables que Java maneja
Tipos de variables que Java manejaTipos de variables que Java maneja
Tipos de variables que Java maneja
Laura Robles
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
Angel Vázquez Patiño
 
[ES] Colecciones y estructura de iteracion
[ES] Colecciones y estructura de iteracion[ES] Colecciones y estructura de iteracion
[ES] Colecciones y estructura de iteracion
Eudris Cabrera
 

La actualidad más candente (20)

Serializacion
SerializacionSerializacion
Serializacion
 
Serialización de Objetos Java
Serialización de Objetos Java Serialización de Objetos Java
Serialización de Objetos Java
 
Serialización de objetos en java
Serialización de objetos en javaSerialización de objetos en java
Serialización de objetos en java
 
Jyoc java-cap14 persistencia. ficheros corrientes
Jyoc java-cap14 persistencia. ficheros corrientesJyoc java-cap14 persistencia. ficheros corrientes
Jyoc java-cap14 persistencia. ficheros corrientes
 
3- Clases y Objetos
3- Clases y Objetos3- Clases y Objetos
3- Clases y Objetos
 
03 Oop
03   Oop03   Oop
03 Oop
 
Programacion orientada a objeto
Programacion orientada a objeto Programacion orientada a objeto
Programacion orientada a objeto
 
Lab herencia
Lab herenciaLab herencia
Lab herencia
 
1 -programacion_oo
1  -programacion_oo1  -programacion_oo
1 -programacion_oo
 
Tipos de Variables en Java
Tipos de Variables en JavaTipos de Variables en Java
Tipos de Variables en Java
 
7-Unidad 2. Elementos de una Clase
7-Unidad 2. Elementos de una Clase7-Unidad 2. Elementos de una Clase
7-Unidad 2. Elementos de una Clase
 
Calse 3 JAVA 2012
Calse 3 JAVA 2012Calse 3 JAVA 2012
Calse 3 JAVA 2012
 
Variables en java
Variables en javaVariables en java
Variables en java
 
Contructores en java(grupo 8)
Contructores en java(grupo 8)Contructores en java(grupo 8)
Contructores en java(grupo 8)
 
Jyoc java-cap17 persistencia. nio
Jyoc java-cap17 persistencia. nioJyoc java-cap17 persistencia. nio
Jyoc java-cap17 persistencia. nio
 
Clases y Objetos
Clases y ObjetosClases y Objetos
Clases y Objetos
 
3 poo abstraccion modula..herencia
3 poo abstraccion modula..herencia3 poo abstraccion modula..herencia
3 poo abstraccion modula..herencia
 
Tipos de variables que Java maneja
Tipos de variables que Java manejaTipos de variables que Java maneja
Tipos de variables que Java maneja
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
[ES] Colecciones y estructura de iteracion
[ES] Colecciones y estructura de iteracion[ES] Colecciones y estructura de iteracion
[ES] Colecciones y estructura de iteracion
 

Similar a Java persistence

(29 10-12)serializacion
(29 10-12)serializacion(29 10-12)serializacion
(29 10-12)serializacion
Milton Paredes
 
Serializacion
SerializacionSerializacion
Serializacion
David Quimbiulco
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
Daniel Gomez Jaramillo
 
Termino de programacion
Termino de programacionTermino de programacion
Termino de programacion
JENNY GUAYLLA
 
modularidad de programación 2da parte (3) (1).pptx
modularidad de programación 2da parte (3) (1).pptxmodularidad de programación 2da parte (3) (1).pptx
modularidad de programación 2da parte (3) (1).pptx
javierccallo
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
Rokr02
 
Maria taipe..presentaciones
Maria taipe..presentacionesMaria taipe..presentaciones
Maria taipe..presentaciones
mary taipe
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
jent46
 
Encapsulación
EncapsulaciónEncapsulación
Encapsulación
hedamajo
 
Benita ppp unidad 1
Benita ppp unidad 1Benita ppp unidad 1
Benita ppp unidad 1
TAtiizz Villalobos
 
Serializacion
SerializacionSerializacion
Serializacion
Daniel Oña
 
Introduccionjava
IntroduccionjavaIntroduccionjava
Introduccionjava
OLGA MONTES
 
Serialización
 Serialización Serialización
Serialización
Cristobal Caceres
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
Rolando Steep Quezada Martinez
 
Clase y Objeto de la POO
Clase y Objeto de la POOClase y Objeto de la POO
Clase y Objeto de la POO
jvaldes9928
 
Serializacion en java
Serializacion en javaSerializacion en java
Serializacion en java
Andrea Cañizares
 
Serializacion de objetos
Serializacion de objetosSerializacion de objetos
Serializacion de objetos
Victor Andrés Bauz Rosas
 
Modulo ii de_java[1]
Modulo ii de_java[1]Modulo ii de_java[1]
Modulo ii de_java[1]
david florentino
 
Tutorial de eclipse_yamary(2)
Tutorial de eclipse_yamary(2)Tutorial de eclipse_yamary(2)
Tutorial de eclipse_yamary(2)
yamary sanchez
 
Informe Poo
Informe PooInforme Poo

Similar a Java persistence (20)

(29 10-12)serializacion
(29 10-12)serializacion(29 10-12)serializacion
(29 10-12)serializacion
 
Serializacion
SerializacionSerializacion
Serializacion
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
Termino de programacion
Termino de programacionTermino de programacion
Termino de programacion
 
modularidad de programación 2da parte (3) (1).pptx
modularidad de programación 2da parte (3) (1).pptxmodularidad de programación 2da parte (3) (1).pptx
modularidad de programación 2da parte (3) (1).pptx
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
 
Maria taipe..presentaciones
Maria taipe..presentacionesMaria taipe..presentaciones
Maria taipe..presentaciones
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Encapsulación
EncapsulaciónEncapsulación
Encapsulación
 
Benita ppp unidad 1
Benita ppp unidad 1Benita ppp unidad 1
Benita ppp unidad 1
 
Serializacion
SerializacionSerializacion
Serializacion
 
Introduccionjava
IntroduccionjavaIntroduccionjava
Introduccionjava
 
Serialización
 Serialización Serialización
Serialización
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Clase y Objeto de la POO
Clase y Objeto de la POOClase y Objeto de la POO
Clase y Objeto de la POO
 
Serializacion en java
Serializacion en javaSerializacion en java
Serializacion en java
 
Serializacion de objetos
Serializacion de objetosSerializacion de objetos
Serializacion de objetos
 
Modulo ii de_java[1]
Modulo ii de_java[1]Modulo ii de_java[1]
Modulo ii de_java[1]
 
Tutorial de eclipse_yamary(2)
Tutorial de eclipse_yamary(2)Tutorial de eclipse_yamary(2)
Tutorial de eclipse_yamary(2)
 
Informe Poo
Informe PooInforme Poo
Informe Poo
 

Último

mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
MiguelAtencio10
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
julio05042006
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
sofiahuarancabellido
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
doctorsoluciones34
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Festibity
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
AMADO SALVADOR
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
YashiraPaye
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
cbtechchihuahua
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
larapalaciosmonzon28
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
AMADO SALVADOR
 
Gabinete, puertos y dispositivos que se conectan al case
Gabinete,  puertos y  dispositivos que se conectan al caseGabinete,  puertos y  dispositivos que se conectan al case
Gabinete, puertos y dispositivos que se conectan al case
JuanaNT7
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
bendezuperezjimena
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
AMADO SALVADOR
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
mantenimientocarbra6
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
maralache30
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Festibity
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
gisellearanguren1
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 

Último (20)

mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
 
Gabinete, puertos y dispositivos que se conectan al case
Gabinete,  puertos y  dispositivos que se conectan al caseGabinete,  puertos y  dispositivos que se conectan al case
Gabinete, puertos y dispositivos que se conectan al case
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 

Java persistence

  • 2. SERIALIZACION y CONOCIMIENTOS PREVIOS  La serialización consiste en codificar un objeto como una secuencia de bytes para almacenarlos en memoria o en un archivo para poder guardar el estado de los objetos aunque se cierre el programa. Es utilizada para conseguir persistencia entre diferentes sesiones y para poder transmitir objetos remotamente a través diferentes máquinas de una red, proceso conocido como invocación remota de objetos(RMI).
  • 3. GETTER Y SETTER  No son propios de java, pues son sobre todo una es “buena costumbre” en la programación orientada a objetos en varios lenguajes, y además son parte de la especificación de JavaBeans.  La razón de crear estos métodos, es debido a que habitualmente se recomienda que los campos (o propiedades) de una clase sean de acceso privado, es decir, únicamente desde el interior de la clase, y que para accesar o modificar estos valores, se utilicen métodos públicos diseñados para esa tarea. Estos son los denominados setters (set – modificar) y getters (get – accesar).  Pongamos un ejemplo sencillo, suponiendo que debemos representar a una persona en un objeto, la persona tendrá como datos “nombre, direccion, y teléfono”. Crearemos entonces la clase y esos 3 campos, los cuales serán de acceso privado, y crearemos los 3 métodos setters y los 3 métodos getters para poder accesarlos y/o modificarlos. 3
  • 4.  Se puede apreciar que los campos nombre, direccion y telefono son de acceso privado. Los métodos setNombre, setDireccion y setTelefono, son los setters para dichos campos, los cuales reciben como parámetro el nuevo valor y lo asignan a la propiedad. Algo que tienen en común éstos métodos es que son de tipo void, lo que quiere decir que no retornan ningun dato, ya que sólo sirven para modificar la propiedad, asignando el valor recibido en el parámetro. Los métodos getNombre, getDireccion y getTelefono, son los métodos getters, y nos dan acceso al valor actual de la propiedad, al retornarnos su dato almacenado. Estos 3 métodos si poseen un tipo de datos de retorno, el cual depende del tipo de la propiedad que están retornando. Tanto los setters como los getters son métodos de acceso público y nos dan la posibilidad de accesar y modificar los campos privados de la clase. 4
  • 5. 5 Persistencia en Java  Un objeto se dice persistente cuando es almacenado en un archivo u otro medio permanente. Un programa puede grabar objetos persistentes y luego recuperarlos en un tiempo posterior.  Java se provee un mecanismo de serialización para almacenar objetos en disco.  La serialización se obtiene llamando al método writeObject de la clase ObjectOutputStream para grabar el objeto, para recuperarlo llamamos al método readObject de la clase ObjectInputStream.  La serialización además de persistencia, se puede usar para transferir objetos desde una máquina a otra a través de un socket (ELO330).
  • 6. 6 Interfaz Serializable  Sólo objetos que implementen la interfaz Serializable pueden ser escritos a stream. La clase de cada objeto es codificada incluyendo el nombre de la clase y la firma de la clase (su prototipo) los valores de los sus campos y arreglos, y la clausura de cualquier otro objeto referenciado desde el objeto inicial.  Para hacer que un objeto sea serializable, sólo debemos declarar que implementa la interfaz serializable. Nada más. No hay nétodos que debamos definir.  Por razones de seguridad las clases no son serializable por defecto.  Hay que tener claro el orden y tipo de los objetos almacenados en disco para recuperarlos en el mismo orden.
  • 7. 7 Ejemplo: Empleados serializables  Class Employee implements Seralizable {....} Employee staff = new Employee[3]; .... out.writeObject(staff);  Luego podemos recuperar el objeto haciendo: Employee[] newStaff=(Employee[])in.readObject();  Sólo objetos pueden ser serializados con writeObject().  Veamos el ejemplo ObjectFileTest.java
  • 8. 8 Tratamiento de referencia a objetos  Múltiples referencias a un único objeto son codificadas usando un mecanismo de referencias compartidas de modo que el “grafo” de objetos puede ser restaurado con la misma forma original.  Los métodos writeObject y readObject se encargan de crear y almacenar un número de “serie” para cada objeto. De este modo objetos ya almacenados no son grabados nuevamente.  Supongamos que dada mánager tiene una secretaria. Dos mánager podrían compartir la secretaria, en este caso tendriamos algo como:  Si grabamos staff, no queremos tres secretarias luego sino algo equivalente a esta vista en memoria. staff Employee Name=“Eugenia” Manager Secretary= Manager Secretary=
  • 9. 9 Tratamiento de referencia a objetos  Para ello Java utiliza el siguiente algoritmo para serializar (poner número de series).  A todos los objetos grabados a discos se les asigna un número de serie.  Antes de grabar un objeto a disco se ve si ya ha sido grabado.  Si ya ha sido grabado, se graba “lo mismo que el objeto con número de series xxx”  Sino, se almacena el objeto. Employee name=“Eugenia” Manager secretary= Manager secretary= En disco: Serial number=1 type=Employee name=“Eugenia” Serial number=2 type=Manager secretary=objeto 1 Serial number=3 type=Manager secretary=objeto 1
  • 10. 10 Mezcla de objetos serializables y datos básicos  Podemos hacerlo por medio de los métodos writeInt, readInt, etc dado que ObjectOutputStream implementa la interfaz DataOutput. Análogo para la entrada. De datos.  Ejemplo: para escribir un objeto,  FileOutputStream ostream = new FileOutputStream("t.tmp");  ObjectOutputStream p = new ObjectOutputStream(ostream);  p.writeInt(12345);  p.writeObject("Today");  p.writeObject(new Date());  p.flush();  ostream.close();  La lectura se hace en forma análoga.  FileInputStream istream = new FileInputStream("t.tmp");  ObjectInputStream p = new ObjectInputStream(istream);  int i = p.readInt();  String today = (String)p.readObject();  Date date = (Date)p.readObject();  istream.close();
  • 11. 11 Cuando hay objetos no serializables  Clases que requieren manejos especiales durante el proceso de serialización o deserialización deben implementar los métodos:  private void readObject(java.io.ObjectInputStream stream)  throws IOException, ClassNotFoundException;  private void writeObject(java.io.ObjectOutputStream stream)  throws IOException  Se aplica en casos que tengamos objetos que no sean serializables (aquellos que tienen algún dato no serializable)  Por ejemplo Point2D.Double no es serializable en Java.  Para que no reclame el compilador, definimos nuestro dato Point2D.Double como transiente (transient) y luego definimos los métodos indicados.
  • 12. 12 Cuando hay objetos no serializables  Ejemplo: public class LabelPoint {.... Private String label; private transient Point2D.Double point; }  Luego implementamos: private void writeObject(ObjectOutputStream out) throws IOException { out.defaultWriteObject(); out.writeDouble(point.getX()); out.writeDouble(point.getY()); } private void readObject(ObjectInutStream in) throws IOException { in.defaultReadObject(); double x=in.readDouble(); double y=in.writeDouble(); point =new Point2D.Double(x,y); }