Home Java Conectar MySQL con Java usando JDBC

Conectar MySQL con Java usando JDBC

15 2609

Lo primero que necesitamos para conectarnos con una base de datos es un Driver (o Connector).

Ese Driver es la clase que, de alguna forma, sabe cómo interactuar con la base de datos. Desgraciadamente (y hasta cierto punto es lógico), no viene con todos los Drivers de todas las posibles bases de datos del mercado. Debemos ir a internet y obtener el Driver, normalmente en la página de nuestra base de datos

Para el caso de , podemos descargarlo de http://dev.mysql.com/downloads/connector/j/5.1.html.Nos bajamos el mysql-connector-java-5.1.8.zip, lo desempaquetamos en algún sitio y nos quedamos con el mysql-connector-java-5.1.8-bin.jar que viene dentro. En ese jar está la clase Driver que nos interesa.
Ponerlo en la variable de entorno CLASSPATH, siempre que nuestro IDE (eclipse, netbeans, etc) haga caso de esa variable. Desde consola es:

$ set CLASSPATH=<PATH_DEL_JAR>\mysql-connector-java-5.0.5-bin.jar

Añadirlo en nuestro IDE. En el ejemplo de eclipse, damos con el botón derecho del ratón sobre el proyecto, para sacar el menú y elegimos “properties“->”java build path“->”Libraries“->”Add external JARs…” y seleccionamos nuestro jar.

Con eso ya tenemos instalado el driver necesario para MySQL, ahora vamos a usarlo en un programa:

import java.sql.*;
 
public class Basededatos {
private Connection conexion;
static String bd="Base_de_Datos";
static String user="Usuario_Base_de_Datos";
static String password="Contraseña";
static String server="jdbc:mysql://localhost/"+bd;
 
/** Creates a new instance of BasedeDatos */
public Basededatos() {
}
 
public void establecerConexion(){
try{
Class.forName("com.mysql.jdbc.Driver");
conexion = DriverManager.getConnection(server,user,password);
}
catch(Exception e){
System.out.println("Imposible realizar conexion con la BD");
e.printStackTrace();
}
}
 
public Connection getConexion(){
return conexion;
}
 
public void cerrar(ResultSet rs){
if(rs !=null){
try{
rs.close();
}
catch(Exception e){
System.out.print("No es posible cerrar la Conexion");
}
}
}
 
public void cerrar(java.sql.Statement stmt){
if(stmt !=null){
try{
stmt.close();
}
catch(Exception e){}
}
}
 
public void destruir(){
 
if(conexion !=null){
 
try{
conexion.close();
}
catch(Exception e){}
}
}
}

Si todo va bien, tendremos nuestra conexión a la base de datos. Si va mal, saldrá una excepción. Por eso es importante (y obligatorio para que compile) meter todo esto en un try-catch.

Esta forma de obtener una conexión está bien para aplicaciones sencillas, en el que únicamente se establece una conexión con la base de datos, no hay muchos hilos trabajando, etc.

Linuxero de corazón, Sysadmin de profesión...

15 COMMENTS

  1. Muy buena tu publicacion ….Es de mucha ayuda para la comunidad que inicia en Java…1000Gracias por tu Aporte.

  2. me parece muy interesante el ejercicio, pero tengo una duda, al importar
    -> import java.sql.*; no lo puedes hacer solo importando las opciones que se necesitan de sql, es decir que no lo hagas con el “sql.*”, sino importando una a una las que necesitan, igual no creo que sean muchas. gracias por el post xD

  3. Hola una pregunta.. mencionaste que tenemos que meter todo el codigo en un try-catch, pero desde a donde a donde tendria que poner el codigo?? y como quedaria el programa con el try-cath???

  4. Necesito Ayuda!!! Ya segui todos los pasos en Fedora 17 con Eclipse JUNO pero aun asi aparece java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

    Como resuelvo eso?? Ayuda por favor

      • Me di cuenta en otra pagina que para mi proyecto que es un Proyecto Web Dinamico (en Eclipse) el proceso cambia, por lo tanto lo que hice fue copiar el mysql-connector-java-5.1.8-bin.jar en la carpeta WEB-INF/lib del proyecto web y asi funciono. Gracias por la respuesta.

  5. Hola, tenia una duda si no es mucha molestia.
    Yo convierto un código hecho con el jdbc uniendo java con mysql, pero lo que quiero hacer es convertirlo a un JAR ya cuando esta hecho sirve y todo pero no conecta con el mysql.
    Espero tu respuesta, Saludos!!!!!

  6. Gracias por compartir esta información, debemos de tu mar tu ejemplo y ayudar a los de mas, en lo que se pueda, claro.

Leave a Reply