Duda Sobre .jar con conexión db mysql

Iniciado por Alexis Vargas Arteaga, 9 Septiembre 2011, 18:05 PM

0 Miembros y 1 Visitante están viendo este tema.

Alexis Vargas Arteaga

Hola a todos,

Resulta que estoy tratando de realizar un proyecto en eclipse, el cual requiere de una base de datos en mysql, ya he implementado el driver y todo.

A la hora de crear el .jar todo va bien... el problema aparece a la hora de tomar ese jar y pasarlo a otra pc? pues no me encuentra la base de datos. quisiera que alguién me ayude con éste problema.

he buscado en el foro y existen inquietudes similares, pero no logro solucionarlo. he intentado crear el jar de manera manual por consola pero no lo consigo  :-(

gracias de antemano.

Valkyr

Sí accede a una base de datos local (es decir, está creada en tu máquina) es lógico que luego falle en otro PC distinto pues no encontraría dicha base de datos. Corrígeme si me equivoco.

Saludos.

Alexis Vargas Arteaga

Gracias por Responder!

En efecto la base está en local.

Lo que quiero saber es si existe una forma de llevar la base junto al jar. y que éste la halle sin tener que realizar ningún tipo de instalación ni configuración en la otra máquina.

Atento a una respuesta.


sapito169

#3
Respuesta corta usa dervy en memoria

Para que no necesite ninguna configuración

Con mysql no a menos que encuentres alguna propiedad que diga crear en memoria

Si quieres trabajar sin tener que instalar bd a tener que utilizar dervy in memory con jar el dervy client con la url jdbc:dervy://localhost/memory:testdb;create=true

Pero esto tampoco basta una vez ya tienes la conexión de la base de datos en memoria tienes que ejecutar el script que te cree toda la base de datos junto con sus vistas tablas trigers procedimientos alamacenados funciones constraints jobs

pero eso todavia no basta tienes que asegurarte que el script de creación se ejecute una sola vez y se ejecute antes de que utilices alguna función de la base de datos como una consulta en una tabla(por que todavía no existiría)

Pero eso todavía no basta tienes que asegurarte de que el script de creación que has hecho para mysql sea compatible con el que isiste para dervy es decir tener las mismas tablas vistas procedimientos(con los mismos argumentos y con los mismos nombres) etc que crees consultas equivalentes muchas de las consultas en dervy no van a ser exactamente las mismas en dervy que en mysql(talves sin querer uses algo dependiente de mysql)

Pero eso todavía no basta tienes que asegurarte que crees un buena arquitectura donde separes la vista del acceso a datos(programar bien cosa que es rarísima) y tienes que saber a usar patrones como dao o tener barios archivos properites o xml donde este todo lo dependiente a la base de datos como los querys para la base de datos

pero eso todavía no basta si has leido todo y piensas en aserlo tu mismo y lo estas haciendo mientras lees deja de ser tan inocente y aprende a leer todo un texto completo y entiende que es mejor ser un vago y dejar que te haga todas las cosas que te dije arriba por un framework como la implementación de jpa con hibernate(el que recomiendo) en vez de tardar meses en crear las funcionalidades que describí y enzima comprobar que funcionen(la realidad es que aunque lo pruebes todo siempre te van a salir errores inesperados cuando juentes todo)

pero eso todavía no basta si finalmente tomaste la decisión menos inocente y dejaste a que hivernate te haga todo en vez de hacerlo por tu cuenta propia te darás cuenta que has tenido que leerte infinidad de tutoriales o algún libro o una infinidad de videos en youtube y al final tu aplicación apesta por que se pondrá extremadamente lenta porque te olvidas como configurar hibernate para que confuncione con el mejor rendimiento posible (varias configuraciones en su archivo de configuracion) usano por ejemplo cache indices vistas  

Y si finalmente logras entender todo lo que te dije te darás cuenta porque programar en java es horrible y por que hay pocos que realmente saben lo que hacen porque todos te piden que aprendas como 20 cosas que contienen j jpa jdbc jee ejb y ademas una infinidad de frameworks
Y si lo logras te darás cuenta que muy pocas personas se toma el tiempo en aprenderlas todas medianamente bien y que al final todo el tiempo que lograste ganar al final lo perdiste aprendiendo como usar la herramienta x y configurar todas las herramientas que usas (infinidad de gigantescos y horribles ficheros xml) y eso solo es en la parte de la persistencia el resto es peor

pdta no extoy molesto con nadie solo estoy exorcizando mis demonios internos

Valkyr

Virgen santísima que respuesta  :o jaja.

A mi se me ocurrió algo, pero no se si es una barbaridad o si sería correcto. Pensé que quizás podría montar un servidor en el PC suyo propio, y en el programa, lo único que tendría que hacer es conectarse a su IP pública, especificar el puerto donde está trabajando dicho servidor, y acceder con el login y demás. No se si esto será posible, simplemente es una idea que se me ocurrió y pensé que, si se puede hacer así, sería una solución bastante buena.

Espero que si contestas, sapito169, no sea exorcizando tus demonios internos  :)

Saludos.

Alexis Vargas Arteaga

jum!   ;D :D :huh: >:( Esos fueron mis estados de animo con tu respuesta amigo sapito169.

Primero que todo te agradezco infinidad de veces amigo por responder, sobre todo por la forma en que lo hiciste, creo que quedaste extenuado jejejeje.

mmm.

¿Ahora que hago?

la idea de Valkyr me gusta. y estoy algo seguro que funcionaría, pero sucede que tengo el puerto 80 bloqueado.

sapito169

Bueno ahora que ago

Puedes seguir el camino mas fácil y hacerlo como te recomendaron poner un servidor de base de datos y cambiar la url en donde dice localhost pones el ip de la maquina en la red (muy aparte tienes que saber cómo configurar ips puertos y cortafuegos)

O puedes usar jpa hibernate con dervy in memory y dejar que el framework te haga todo

Valkyr

Nosotros hemos estado trabajando en las prácticas de la universidad con Oracle y en una de las prácticas usamos Java y lo realizamos así, estaba montada en un servidor, en un puerto concreto y nosotros nos conectábamos.

Lo que dice sapito169 la verdad que no lo conozco, pero sería cuestión de que te informases y vieses que alternativa te conviene o se adapta mejor a tu caso.

Saludos.

Alexis Vargas Arteaga

Ok gracias por todos los consejos, voy a intentar varios luego les cuento como me fue...

;)

Informatique

hola
Yo conecto mi aplicacion a mysql, por medio de la red e internamente en el jar tengo una clase que es un Cuadro de dialogo que`pide usuario y contraseña, pero asu ves se puede poner la url y el driver para conectarse a mysql. y sin mas se conecta, pero hay que tener en cuenta que se necesita en mi caso un archivo jar que se llama mysql-connector.jar para conectarse este ubicado en el la maquina cliente y con eso. otra es desactivar el firewall de windows para que te permita conectarte.

En la url especifica el nombre o direccion ip de donde se encuantra instalada la Base de datos.

bye