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

Problema con Aplicacion y Base de Datos en MySql

Estas en el tema de Problema con Aplicacion y Base de Datos en MySql en el foro de Java en Foros del Web. He creado una aplicación para el manejo de una biblioteca en JCreator, enlazado a una base de datos creada en MySql, en el sistema operativo ...
  #1 (permalink)  
Antiguo 22/09/2011, 14:51
Avatar de kannonnr  
Fecha de Ingreso: junio-2011
Ubicación: Pasto
Mensajes: 39
Antigüedad: 12 años, 10 meses
Puntos: 1
Exclamación Problema con Aplicacion y Base de Datos en MySql

He creado una aplicación para el manejo de una biblioteca en JCreator, enlazado a una base de datos creada en MySql, en el sistema operativo windows xp, mientras compilo la aplicación en el IDE, funciona perfectamente, pero cuando cree el archivo .jar, la aplicación ya no tiene conexión con la base de datos, en el código fuente de mi programa puse la librería de MySql dela siguiente manera:

import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;

Supongo que era suficiente para que la aplicación funcionara, pero pues ya se que hay algo que anda mal, si alguien me puede dar una ayuda le agradecería enormemente
__________________
Bosatzu Kannon
Keep Moving Forward
  #2 (permalink)  
Antiguo 22/09/2011, 16:08
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Problema con Aplicacion y Base de Datos en MySql

Seguramente es porque el driver (librerías) de conexión están en un .jar aparte, que no se incluye dentro del .jar del proyecto.

Tendrías que tener los dos juntos para que funcionase.
  #3 (permalink)  
Antiguo 22/09/2011, 16:16
 
Fecha de Ingreso: febrero-2008
Ubicación: Sevilla
Mensajes: 91
Antigüedad: 16 años, 2 meses
Puntos: 15
Respuesta: Problema con Aplicacion y Base de Datos en MySql

Supongo que haras DriverManager.registerDriver(new com.mysql...) etc

La ruta hacia el conector mysql debes incluirla en el classpath para que tu aplicacion sea capaz de encontrarlo.

Esto lo puedes hacer bien editando el META-INF del JAR (con ant tambien puedes modificarlo para que te añada las librerias al hacer el package) o bien creando/editando la variable de entorno del sistema CLASSPATH, añadiendole la ruta. La ruta hacia el conector de mysql puede ser absoluta o relativa al directorio donde se encuentre tu jar.

Yo siempre he añadido el classpath al META-INF, pues si cambias de ordenador el jar tienes que estar preocupandote de configurarle la variable de entorno. El driver lo he puesto siempre en una carpeta dentro del directorio donde tengo el jar, en mi caso lib.

Código:
Class-Path: lib/mysql-connector-java-5.1.15-bin.jar
Eso iria dentro del META-INF y la estructura de los directorios seria la siguiente:

Código:
-Carpeta Principal
  +miaplicacion.jar
  +lib/
      +mysql-connector-java-5.1.15-bin.jar
Un saludo!
  #4 (permalink)  
Antiguo 22/09/2011, 18:04
Avatar de kannonnr  
Fecha de Ingreso: junio-2011
Ubicación: Pasto
Mensajes: 39
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Problema con Aplicacion y Base de Datos en MySql

Bueno mi archivo META-INF lo modifique de la siguiente manera:

Manifest-Version: 1.0
Created-By: 1.6.0_22 (Sun Microsystems Inc.)
Main-Class: Biblioteca
Class-Path: lib/mysql-connector-java-5.0.8-bin


Siguiendo tu consejo, en la carpeta en la que tengo guardado mi archivo creo una adicional llamada lib, en donde guardo el mysql-connector-java-5.0.8-bin, es decir, cuando abro el jar de mi archivo con winrar, lo que me aparece son los archivos q necesito el programa, la carpeta META-INF y la carpeta lib, pero aun asi cuando lo ejecuto me sale el mismo error de conexion, creo q he hecho algo mal y no he seguido bn tus pasos, sera que me puedes ayudar un poco mas? de verdad me estas salvando la vida
__________________
Bosatzu Kannon
Keep Moving Forward
  #5 (permalink)  
Antiguo 22/09/2011, 23:58
 
Fecha de Ingreso: febrero-2008
Ubicación: Sevilla
Mensajes: 91
Antigüedad: 16 años, 2 meses
Puntos: 15
Respuesta: Problema con Aplicacion y Base de Datos en MySql

No a ver, no necesitas incluir el conector en tu jar. La ruta en el META-INF se refiere a una ruta fisica en tu disco duro, no dentro de la propia aplicacion.

Debes crearte la carpeta lib en el mismo sitio donde tienes tu aplicacion jar, y dentro de la carpeta el conector.

Ademas, en el Class-Path que has puesto al conector le falta la extension .jar

Un saludo!

Etiquetas: jar, mysql, sql, aplicaciones
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 11:51.