Foros del Web » Programación para mayores de 30 ;) » Java »

Beans serializables

Estas en el tema de Beans serializables en el foro de Java en Foros del Web. Hola comunidad!! Tengo una tremenda duda y pido que si alguien tiene conocimiento de ella, me ayude a aclararla. Estoy realizando un tutorial de roseindia.net, ...
  #1 (permalink)  
Antiguo 27/09/2012, 22:56
 
Fecha de Ingreso: agosto-2012
Mensajes: 4
Antigüedad: 12 años, 2 meses
Puntos: 0
Pregunta Beans serializables

Hola comunidad!!

Tengo una tremenda duda y pido que si alguien tiene conocimiento de ella, me ayude a aclararla.

Estoy realizando un tutorial de roseindia.net, (http://www.roseindia.net/tutorial/java/jdbc/dataaccessobjectdesignpattern.html) y al fabricar el Bean "StudentBean.java", implementan la interfaz serializable en cuestión.

¿esto tiene algun motivo?
¿los datos se almacenan de una forma diferente en la BD por implementar la interfaz serializable?

Agradezco mucho cualquier ayuda!!
  #2 (permalink)  
Antiguo 28/09/2012, 03:51
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Beans serializables

Hola:

Cuando un bean (o cualquier clase java) implementa la interfaz Serializable, esa clase se puede convertir a un array de bytes y obtenerla a partir de un array de bytes. Eso permite enviar/almacenar/leer/recuperar ese objeto como array de bytes en un fichero, en base de datos, a través de un socket, etc.

El que tu bean implemente serializable no implica necesariamente que se guarde de forma distinta en base de datos, depende de la librería/framework o el código que hagas para que ese bean se guarde de una forma u otra. Eso si, si no implemente Serializable, no se puede guardar como array de bytes, sino que la herramienta/codigo tendrá que ir leyendo todos los atributos de ese bean uno a uno para ir guardándolos de alguna manera (habitualmente, un atributo en cada columna de una tabla de base de datos).

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 28/09/2012, 13:03
 
Fecha de Ingreso: agosto-2012
Mensajes: 4
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Beans serializables

Muchas gracias por tu respuesta chuidiang, esta todo muy claro y bien explicado pero me nace una ultima duda.. Yo hise un proyecto Java con bases de datos (MySQL) cuando no conocía las clases serializables; guarde todo en la base de datos de la forma tradicional (un atributo por columna) pero aller se me ocurrió hacer una prueba y le implemente la interface Serializable (implements serialize) a la clase (o bean) que almaceno en la base de datos (o sea a el modelo). Yo mismo hice la clase DAO recuperando los datos de la manera tradicional, finalmente al ejecutar el proyecto no sufrió ni un cambio y funciono normalmente la clase DAO.

Preguntas:
- Porque no se guardo el objeto como un array de bits?
- Es porque yo trate el objeto de la forma tradicional y para que se guarde como un array de bits deveria almacenarlo de otra forma en la clase DAO?
- Podrían darme algún ejemplo simple porfavor?


Muchas gracias de antemano!! ;)
  #4 (permalink)  
Antiguo 28/09/2012, 14:13
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Beans serializables

Si, el que un objeto sea Serializable no quiere decir nada, unicamente que si quieres puedes convertirlo en un array de bits y guardarlo como tal, pero tienes que hacerlo tú, ello solo no se hace.

Aquí tienes un ejemplo de como escribir un objeto serializable en un fichero binario como si fuera un array de bytes http://www.chuidiang.com/java/ficher...tosFichero.php

Y aquí tienes un ejemplo de cómo se guardaría en una base de datos, en una columna de tipo blob se guardaría el array de bytes que representa el objeto http://chuwiki.chuidiang.org/index.p...de_Datos_MySQL

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: bean, interfaz
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:50.