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

¿Que es mejor?

Estas en el tema de ¿Que es mejor? en el foro de Java en Foros del Web. Estoy haciendo una aplicacion java y necesito conectar una base de datos, son 26 tablas. ¿que es mejor, mas eficiente y mas versatil? 1- Crear ...
  #1 (permalink)  
Antiguo 29/01/2009, 12:55
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 3 meses
Puntos: 0
¿Que es mejor?

Estoy haciendo una aplicacion java y necesito conectar una base de datos, son 26 tablas.
¿que es mejor, mas eficiente y mas versatil?

1- Crear una clase desde la que se hagan todas las trasacciones (consulas, actualizaciones, inserciones...).

2- Poner en cada clase metodo que realicen esas operaciones.


¿Que es preferible hacer?

1- Realizar la conexion a la base de datos al iniciar la aplicacion y al cerrarla desconectar con la base de datos.

2- Hacer conexiones y desconexiones entre cada operacion.

Muchas gracias
  #2 (permalink)  
Antiguo 29/01/2009, 13:04
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: ¿Que es mejor?

Hola:

Si la aplicación es sencilla:

Por un lado tienes clases con los datos (clases con atributos y métodos set() y get()). Esas deberían ser simples y no tener nada de base de datos.

Luego deberías tener una clase por cada una de las anteriores, con consultas, inserciones, borrados y updates. También puedes hacer una clase de acceso a base de datos por cada grupo de clases de datos relacionadas. Por ejemplo, si tienes clases "Empleado", "Empresa", "PartidoFutbol", "Portería", quizás puedas hacer dos clases de acceso a base de datos, una para temas de "empresa" y otras para temas de "futbol". En principio no es mejor ninguna opción, es símplemente cuestión de que el código quede claro, con clases ni demasiado pequeñas ni demasiado grandes, pero que todo lo que esté dentro de una clase tenga relacción entre sí.

Abrir y cerrar conexiones es costoso. En principio es mejor abrir una y cerrarla al final. Tienes que tener cuidado en este caso si usas hilos de no usar la conexión a la vez.

Si la aplicación es más seria, hay opciones mucho mejores que las planteadas anteriormente.

Las clases de datos seguirán existiendo.

El acceso a base de datos puede hacerse con alguna librería de persistencia, como hibernate, ibatis, etc.

Las conexiones no deberías realizarlas tú en código. La librería de persistencia se encarga de ello, o bien usas un pool de conexiones, que se encarga de abrir y cerrar conexiones de forma eficiente cuando es necesario.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 29/01/2009, 13:08
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: ¿Que es mejor?

Gracias por la respuesta.

La aplicacion es un "sistema de gestion de un concesionario de automoviles", llevaria la parte de configuracion de automoviles, venta, reparaciones y mantenimientos.
Luego otra parte de control de clientes, empleados....
Otra parte de ventas de recambios....

No es muy complicado, pero estoy empezando y ando algo perdido.

Gracias
  #4 (permalink)  
Antiguo 29/01/2009, 16:22
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: ¿Que es mejor?

Hombre, si es para un concesionario de automóviles de verdad, quizás sea mejor usar algo serio para acceso a base de datos, como hibernate o lo que sea. Si es para una práctica de la escuela, entonces pueden valerte las primeras indicaciones que te dí.

En cualquier caso, no es muy complejo, pero sí más eficiente, si usas un pool de conexiones para base de datos. Puedes bajarte uno sencillo y gratuito en http://commons.apache.org/dbcp/, en concreto, la clase que se llama BasicDataSource. Una vez instanciada esa clase, con métodos set() configuras cosas como el servidor de bd, usuario, password, etc. Una vez instanciada y configurada, cuando necesites hacer algo con la bd, le pides una Connection, haces la operación y luego la cierras. El Pool se encargará o no de cerrarla realmente cuando tú llamas al close() de la Connection.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 29/01/2009, 17:45
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: por ahi!!!
Mensajes: 113
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: ¿Que es mejor?

si empezaste por el der, o queres utilizar el modelo de datos que tiene el sistema anterior (Todo esto sobre suposiones) estas por el camino equivocado. Si vas a programar en objetos olvidate del modelo de datos hasta que no tengas bien definido el modelo de dominio. La alternativa hoy mas utilizada para persistencia es beans-daos y hibernate y en tu caso que son 26 tablas pareceria que este esquema que mencione se adapta hasta por ahi. Cuando tenes un modelo de dominio un poco mas grande ya se hace imposible de manejar con daos y beans. Como dicen siempre separa la capa de persistencia de la vista. Se hace mucho mas facil de probar con junit. Es un laburo freelance???
  #6 (permalink)  
Antiguo 30/01/2009, 01:39
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: ¿Que es mejor?

Cita:
Si vas a programar en objetos olvidate del modelo de datos hasta que no tengas bien definido el modelo de dominio.
No puedo estar más en desacuerdo . El modelo de datos es parte del análisis, que lo vayas a hacer con un lenguaje orientado a objetos, mapeado a beans con Hibernate, con EJB, con DAOs o no son detalles de la implementación.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #7 (permalink)  
Antiguo 30/01/2009, 21:25
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: por ahi!!!
Mensajes: 113
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: ¿Que es mejor?

Cita:
Iniciado por GreenEyed Ver Mensaje
No puedo estar más en desacuerdo . El modelo de datos es parte del análisis, que lo vayas a hacer con un lenguaje orientado a objetos, mapeado a beans con Hibernate, con EJB, con DAOs o no son detalles de la implementación.

S!
si es esto lo que haces el que esta completamente en desacuerdo con tu idea
del POO soy yo.

quizas no nos estamos entendiendo bien. Pero lo que digo es muy sencillo.
Si vos arrancas con el modelo de mierda que te da la gente de analisis. O vos
hiciste el maldito analisis pensando en entidad-relacion - pasaste este esquema
de logico a fisico y luego mapeas esto.
Empezaste con el pie izquierdo, si venis haciendo eso desde hace años estas robando como loco. Suerte y segui leyendo un poco mas de tu percepcion del POO.
este libro esta muy bueno.

Las puertas de la percepción

Buscas errores en mis conceptos y mis opiniones y no aportas demasiado a este tema por lo menos.
Vi que en otros si pones garra y los sacas como si te pagaran por respuesta.
Pagan por respuesta???????? Ya serias millonario!!!
2785 msg desde octubre del 2003. a una tasa variable de 15%. cuanto tendrias ya juntado????

Última edición por megajandro; 30/01/2009 a las 21:38
  #8 (permalink)  
Antiguo 31/01/2009, 09:40
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: ¿Que es mejor?

Sin educación no hay nada que discutir.
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #9 (permalink)  
Antiguo 31/01/2009, 09:45
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: por ahi!!!
Mensajes: 113
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: ¿Que es mejor?

lo decis por vos????
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 17:56.