Java - Persistencia de objectos o registros?

 
Vista:

Persistencia de objectos o registros?

Publicado por Joan (8 intervenciones) el 29/10/2015 12:21:31
Buenos días,

A la hora de almacenar datos en una BD lo pdemos hacer directamente si tomamos los datos de un formulario y mediante un consulta SQL lo mandamos a la BD. Pero, ¿es necesario que el dato que queremos guardar, haya que crear primero un objeto de esa clase para luego guardar el objeto?

No sé si me he explicado bien o no. En definitiva, si tengo que guardar datos de clientes, los guardo directamente del formulario a la BD o tengo que hacer primero objectos de la clase clientes y luego guardar los objetos?

Muhcas gracias
Joan
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 214
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Persistencia de objectos o registros?

Publicado por juanki (131 intervenciones) el 29/10/2015 13:51:56
Hola

Pues todo depende. Si los datos que se introducen en el formulario no hay que hacer nada con ellos, solo guardarlos, pues puedes enviarlos directamente a la base de datos.

Otra cosa es que requieran alguna manipulación, entonces igual conviene hacer una clase, a la que se los pases cuando se hayan tecleado y que se esta clase la que se encargue de comprobarlos o hacer lo que sea y ya puestos, sea esta clase la que se encargue también de guardarlos en la base de datos.

O, por ejemplo, que tengas una clase que sea la que se encarga de todas las operaciones con la base de datos, en vez de pasarle todos los datos del cliente por separado, creas una clase "cliente" y se la pasas directamente.

Son un par de ejemplos que te puse, como ves, "todo depende" de lo que quieras hacer y de cómo hayas construido tu programa.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Persistencia de objectos o registros?

Publicado por Joan (8 intervenciones) el 29/10/2015 15:50:24
Hola juanki,

Gracias por contestar, pero no me queda claro. Entiendo cuando dices que depende de si los datos requiren de alguna manipulación, entonces seria conveniente hacer una clase, pero en teoria, los datos los puedo manipular igualmente sin pasarselos a una clase para que sea ella la que los manipule, no?

Disculpa por no ver en este momento la ventaja de pasar los datos recogidos de un formulario a una clase para que sean objetos, y luego que se otra clase la que los almacene en la BD. Si lo puedo hacer directamente, ¿no es más eficiente el programa?

Gracias de antemano.
Joan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Persistencia de objectos o registros?

Publicado por Lawliet (303 intervenciones) el 29/10/2015 17:41:01
Hola...

Como bien dices, ya sea trabajando con o sin objetos nosotros podemos manipular nuestra información que queramos guardar de acuerdo a nuestras necesidades, sin embargo, recordemos que Java es un lenguaje orientado a objetos el cual vienen siendo un paradigma de programación que te permite programar de manera mas eficiente y optima, ya que te permite reutilizar código, mantenimiento más sencillo a la aplicación, facilidad de modificar ya sea quitando o añadiendo líneas de código, entre otras características de gran importancia.

Una de las características base que tiene este paradigma, es el Encapsulamiento, el cual tiene como característica el acceder a atributos privados a través de métodos públicos (http://www.ciberaula.com/articulo/encapsulacion_java/). Si indagas un poco en la liga que te proporcione te darás cuenta de las ventajas que nos proporciona el Encapsulamiento a nivel de información.

Ahora bien, si lo llevamos a nivel de práctica entonces creo que es mejor plantearte un caso práctico.

"Imaginemos que tienes que guardar en tu tabla Empleado, sin embargo, tu tabla contiene 10 campos, correspondientes a información básica del empleado. Como es de esperarse crearemos un método para guardar, imaginemos como quedaría nuestro método para guardar."

1
2
3
public void guardarEmpleado(String campo1, String campo2, String campo3, String campo4, String campo5, String campo6, String campo7, String campo8, String campo9, String campo10){
	// Lógica
}

¿Funcional?... Si... Pero y si tuviera una relación con otra tabla por ejemplo Area, obviamente necesitarías guardar un campo más, actualicemos nuestro método.

1
2
3
public void guardarEmpleado(String campo1, String campo2, String campo3, String campo4, String campo5, String campo6, String campo7, String campo8, String campo9, String campo10, String campo11){
	// Lógica
}

Ahora, nuestro empleado pertenece al área de venta por lo que debemos tener una relación con la tabla Ventas... Espero irme explicando con lo que quiero decir. Pero que pasaría si creáramos un objeto del tipo Empleado como quedaría nuestro método...

1
2
3
public void guardarEmpleado(Empleado empleado){
	// Lógica
}

Como que tiene mejor forma... Ahora bien, imaginemos que yo, Lawliet, como trabajador de una empresa hago el primer método, es funcional pero no correcto ya que en ninguna aplicación el mismo desarrollador es el que brinda mantenimiento a su propia aplicación. Llegas tú, Joan, a darle mantenimiento a la aplicación y te encuentras con ello... ¿Que pensarías?

Como mencionaste anteriormente, no importa si usamos objetos o no ya que puedo manipular la información, además hace lo que necesito en ambos casos, pero... ¿Cual es la buena práctica?

Sin más que comentar, cualquier duda y/o inconveniente, aquí estamos.

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Persistencia de objectos o registros?

Publicado por Joan (8 intervenciones) el 29/10/2015 18:37:58
Muchas gracias Lawliet,

La explicación sobre el encapsulamiento es totalment correcta y la entiendo, a parte, ya la conocia. Pero claro, a la hora de pasar los datos a la BD, tengo que hacer con una consulta tipo "INSER INTO .....CAMPOS...VALORES", entonces, como finalmente tengo que especificar los capos que contiene el objecto a la consulta, es ahí donde me hace dudar de si es necesario hacerlo a traves de un objecdto o hacerlo directamente.

De todas formas, agradezco muchisimo el tiempo que me has dedicado y el esfuerzo realiado.

Otra vez muchisimas gracias.
Joan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Persistencia de objectos o registros?

Publicado por Lawliet (303 intervenciones) el 29/10/2015 18:48:28
Si puedes hacerlo mediante un objeto sería perfecto, ya que es el fuerte de Java, además existen Frameworks en donde pasas un Objeto como parámetro y al ejecutar un simple método, propio del Framework, te guarda automaticamente los registros sin necesidad de pasar por el tradicional "INSERT INTO...VALUES...", como es el caso de [b Hibernate[/b].

Puede que ahora veas que no es tan necesario el trabajo con Objetos, pero profesionalmente verás que en el mundo de Java, todo son instancias de clases; es decir, Objetos.

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 214
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Persistencia de objectos o registros?

Publicado por juanki (131 intervenciones) el 29/10/2015 23:54:46
Hola

El tema de crear o no objetos puede resultar complejo al principio y a veces no se le ve la utilidad y el aparente trabajo extra que acarrea.

Es cierto que puedes manipular los datos de los clientes en cualquier parte de tu programa. La idea de crear un objeto para manipular los clientes es poder aislar y separar la lógica relacionada con los clientes del resto del programa. Así cada objeto se ocupara de una tarea concreta y el programa resultante será más fácil de depurar y de ampliar.

A medida que vayas dominando el lenguaje y vayas cogiendo experiencia con la programación orientada a objetos le verás cada vez más la utilidad.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar