gentoo linux, java, software libre y otras hierbas
nov, 19 2007 - 12:12 pm

Conexiones entre MySQL y Java

En muchas ocaciones es necesario que nuestra aplicación desarrollada en Java acceda a, y manipule, datos que se encuentra en algún DBMS, como por ejemplo MySQL. Para esto debemos echar mano de la API JDBC de Java, y además de esto, usar los Drivers “específicos” para manipular DBMS‘s “específicos” (Oracle, MySQL, etc.).

MySQL provee conectividad para aplicaciones cliente desarrolladaas en Java mediante este driver JDBC, llamado MySQL Connector/J, que es el driver JDBC oficial para MySQL. La ultima versión de este conector, al momento de escribir este articulo, es el Connector/J 5.1, que incluye soporte para las funcionalidades del JDBC-4.0.

MySQL Connector/J es un driver JDBC tipo 4. Existen otras versiones que son compatibles con las especificaciones JDBC-3.0 y JDBC-4.0. Se dice que es tipo 4 ya que el driver es una implementación del protocolo de MySQL hecha puramente en Java, y no requiere de clientes binarios de MySQL. [Más info]

Por suspuesto es necesario que comprendas de manera clara el funcionamiento de la API de JDBC, para poder usar cualquier conector. Puedes si quieres leer estos dos tutoriales muy básicos y fáciles de entender, donde te podrás introducir en el tema:

Instalando el MySQL Connector

Lo primero que debemos hacer, es ir a la página de descargas del conector de MySQL y descargarnos la última versión (si es necesario). Escogemos el tipo de archivo que nos convenga (por ejemplo el tar.gz si usamos Gnu/Linux, o zip si usamos Windows). Descomprimimos el archivo y observamos que nos proporcionan:

  • Los binarios ejecutables (en mi caso mysql-connector-java-5.1.5-bin.jar)
  • Los archivos fuente
  • La documentación del conector

Debemos entonces copiar el archivo JAR ejecutable, en el siguiente path: \ruta_instalacion_java\jre\lib\ext. Por ejemplo en mi openSuse sería en /usr/lib/jvm/jdk5.0/jre/lib/ext, o en Windows podría ser en C:\Program Files\Java\jre1.6.0_01\lib\ext,

Luego de copiar dicho archivo, ya podemos usar el conector de MySQL desde nuestras aplicaciónes en Java, JSP, servlets, etc.

Nota: Es importante que el usuario que ejecute la aplicación, tenga privilegios de lectura y ejecución sobre el archivo .jar, de lo contrario podrían aparecer errores al momento de leer las clases de dicho conector. En Gnu/Linux, por ejemplo, los paths donde se coloca el conector suelen ser propiedad del usuario root, por lo que lo mejor que puedes hacer es cambiar el propietario del archivo una vez lo hayas copiado, por ejemplo:

sudo chown tu_nombre_de_usuario /usr/lib/jvm/jdk5.0/jre/lib/ext/mysql-connector-java-XXX-bin.jar

Eso es todo, ahora puedes si quieres montar un entorno de trabajo Apache + MySQL + Java (JSP).

26 Comentarios | deja el tuyo

Un enlace entrante

25 Comentarios en “Conexiones entre MySQL y Java”

  1. Edisanluck dice:

    Una pregunta casidiablo ya coloque el mysql connector en el path ( para windows ) pero a mi me sigue lanzado el mismo error (java.lang.ClassNotFoundException: com.mysql.jdbc.Driver java.lang.NullPointerException ) ¿como puedo revisar que en windows tenga permisos de lectura y ejecucion? ¿ o que mas puedo hacer al respecto ? “segun” yo tengo el conector bien colocado, de antemano gracias y un saludo.

  2. Claudia dice:

    Hola Casidiablo tengo un problema a la hora de correr el programa me marca el siguiente error:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    ya tengo el conector en la ruta ayudame porfa de antemano muchas gracias

  3. Casidiablo dice:

    Hola claudia.

    Mira, ese error solo sucede en alguno de estos casos:

    No tienes el Driver en la ruta correcta

    ó dicho archivo no tiene los permisos suficientes para que sea accedido por el programa.

    Revisa esto último.

    Un saludo!

  4. Edisanluck dice:

    Que onda casidiablo ¿por que a claudia si le contestaste y a mi no? creo que por que no soy mujer XD no te creas tal vez mi pregunta fue muy estu….penda y no pudiste contestarla un saludo y suerte con tus estudios.

  5. Casidiablo dice:

    Jaja… es que Claudia me mando una foto y tal…

    No ahora en serio, no vi tu comentario, te pido mil disculpas.

    Un saludo!

  6. omar bravo dice:

    q onda, solo una duda, ya coloque el mysql connector en el path ( para windows ) y al ejecutar el programa principal me manda al catch ( ClassNotFoundException claseNoEncontrada ) … que hice mal??

  7. Omar dice:

    Hola yo tengo el mismo vendito error java.lang.ClassNotFoundException: com.mysql.jdbc.Driver java.lang.NullPointerException
    no tengo el path que comentan donde puedo encontrarlo ?
    no estoy seguro si mi problema es que tengo el open-jdk instalado y talvez esa vercion no soporta ese conector la verdad es que no se pero ya probe de todo y nadamas no queda

    Gracias de antemano

  8. Cristian dice:

    Antes que nada, intenta ejecutarlo con la opción -cp, algo así como:

    java -cp C:\cosa.jar Programa

    Si funciona, quiere decir que tienes mal lo del path. Para modificar el path tienes que añadir esto en el archivo /home/usuario/.bashrc:

    export PATH=$PATH:/ruta/del/conector

    Y luego ejecutar el comando:

    source /home/usuario/.bashrc

    Un saludo!

  9. Maria Jose dice:

    Hola saben tengo ubuntu mysql 5.0 jdk1.6 hice todo lo que hay dice
    java -cp C:\cosa.jar Programa
    y incluso esta linea me tira que falta la clase
    y el programa me funciona perfectamente en Windows pero en ubuntu ya no funciona tengo bien configurada JAVA_HOME tambien que puede ser?

  10. Cristian dice:

    Recuerda que en Ubuntu debes poner:

    java -cp /ruta/cosa.jar Programa

    Tal vez ya lo hiciste, pero como no dejas más información supongo que será eso.

    Un saludo!

  11. Maria Jose dice:

    Jajaja ya descubri que era.
    Resulta que al instalar netbeans se me instalo openjdk tonces era en esa carpeta donde debia poner el conector, por lo tanto instale todo denuevo para no tener dos carpetas de java.

  12. Rack dice:

    Graxias… Banda… me fue de gran ayuda esta pagina, solo para comentar que estoy utilizando applets para realizar una conexion a una BD en mysql y me salia un error al correrlos en la pagina web… asi q solo hice los pasos mensionados anteriormente y Problema Resuelto..
    Graxias

  13. swuswo dice:

    llevo mucho meses tratando de montar este sistema pero uno se desanima por la falta de informacion, y en la universidad tampoco saven nada…
    gracias por su tiempo me ayudaron mucho…

  14. ralejanro dice:

    Que chimba tan HP… esto era lo que estaba buscando hacia 2 largas horas, Me funciono!!

¡Déjanos tu comentario!