jueves, 19 de diciembre de 2013

PERSISTENCIA DE OBJETOS










LOS OBJETOS :

Bien es sabido en la POO que los objetos abstraen el mundo real a partir de una estructura que los agrupa conocida como clase. Estos objetos manejan todos los datos de un sistema y son guardados en memoria volátil. Al momento de cerrar alguna sesión o simplemente cerrar el programa, estos objetos desaparecen y no se puede recuperar. Es decir estos objetos mueren cuando el sistema deja de funcionar. En ocasiones algunos objetos, sobre todo aquellos que manejan el verdadero negocio de la aplicación deben de perdurar para que no mueran y sean recuperados más tarde para otra tarea o trabajo. Cuando pasa esto es necesario guardarlos en almacenamiento permanente ya sea utilizando archivos de texto, binarios, base de datos relacionales, orientada a objetos entre otras. Este proceso se conoce como persistencia de objetos.

  LA PERSISTENCIA 

 En Java se puede hacer de todo tipo de persistencia, este escrito trata de mostrar cómo se hace la persistencia en archivos. Para esto se tomarán los objetos y se almacenaran en archivos binarios. Este proceso se llama serializacion de objetos. Para guardar un objeto de una clase se deben de seguir tres pasos sencillos: 

 1.Todo objeto persistente, su clase debe implementar la interface serializable. Así: 

          public class Perro implements java.io.Serializable{ }

 2.Para guardar el objeto, se debe usar la siguiente clase de Java para crear un objeto. Asi: 

          Perro objeto =new Perro();
          ObjectOutputStream salida=new ObjectOutputStream(new FileOutputStream("archivo.obj")); 
          salida.writeObject(objeto); salida.close(); 

 3.Ya guardado el objeto, se puede recuperar así: 

        ObjectInputStream entrada=new ObjectInputStream(new FileInputStream("archivo.obj"));
        Perro perr1 = (Perro) entrada.readObject(); 
        entrada.close();

NOTA IMPORTANTE: Todas las clases de Java para crear los objetos para la persistencia están en el paquete java.io. Si hay varias clases en un programa, todos los objetos que se van a guardar debe implementar la interface serializable, pero lo recomendable es guardar un solo objeto, el que este en el más alto nivel. Si esto no se puede habría que usar múltiples archivos. En este vídeo hay una explicación detallada.