Inicio > Programacion > Acceder a MySQL desde Java

Acceder a MySQL desde Java

Imaginamos que creamos una base de datos MySQL para nuestra aplicación en Java. ¿Cómo podemos conectar nuestra base de datos con nuestra aplicación? Esto es lo que resolveremos con esta entrada.

1. Debemos descargar el conector MySQL para Java, que lo podemos obtener desde la página oficial:

http://www.mysql.com/downloads/connector/j/

2. Añadimos el fichero .jar descargado y lo adjuntamos a nuestro proyecto: Ejemplo para NetBeans.
Botón derecho sobre la carpeta Libraries y añadir archivo .jar

paso1

Desde este momento ya tenemos el conector agregado a nuestra aplicación.

 

3. Instanciamos y utilizamos la librería. Para este caso, hemos creado una clase conexión con métodos que reciben una consulta y nos devuelvan el resultado según sea, en nuestro caso, tipo Integer o DefaultTableModel .

Con esta función haremos una consulta SQL y guardaremos el resultado en un DefaultTableModel que será el objeto que nos devolverá esta función.
public DefaultTableModel HacerConsulta(String sql,String[] columnas)
{
. . .
}
 

Con este método ejecutaremos aquellas consultas que sean Insert, Delete y Update. Devuelve un entero que representa se hay error.

public int EjecutarConsulta(String sql)
{
. . .
}
 

Esta función la utilizaremos para consultar un valor escalar. Por ejemplo una sentencia SQL del tipo: “SELECT Count(*) FROM almacen”.

public int ConsultarEscalar(String sql)
{
. . .
}
 

Puedes obtener el fichero original más abajo, el siguiente fragmento contiene nuestra clase de conexión lista para copiar y pegar.

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.table.DefaultTableModel;
 
public class ConexionMySQL {
    private String ruta;
    private String usuario;
    private String clave;
 
    private Connection conexion;
    private Statement statement;
    private ResultSet resultSet;
    private DefaultTableModel modelo;
 
    public ConexionMySQL(String ruta,String usuario, String clave){
        this.ruta = "jdbc:mysql://" + ruta;
        this.usuario = usuario;
        this.clave = clave; 
        statement = null;
        resultSet = null;
        modelo = null;
 
        try {
            // Se registra el Driver de MySQL
            DriverManager.registerDriver(new org.gjt.mm.mysql.Driver());
        } catch (SQLException ex) {
            Logger.getLogger(ConexionMySQL.class.getName()).log(Level.SEVERE, null, ex);
        }
 
    }
 
    public void Conectar()
    {
        try {
            conexion = (Connection) DriverManager.getConnection(ruta, usuario, clave);
            statement = (Statement) conexion.createStatement();
        } catch (SQLException ex) {
            Logger.getLogger(ConexionMySQL.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
 
    public void Desconectar()
    {
        try {
            statement.close();
            conexion.close();
        } catch (SQLException ex) {
            Logger.getLogger(ConexionMySQL.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
 
    public DefaultTableModel HacerConsulta(String sql,String[] columnas)
    {
        try {
 
            modelo = new DefaultTableModel();
 
            for(int i=0; i<columnas.length; i++)
            {
                modelo.addColumn(columnas[i]);
            }
 
            Conectar();
 
            resultSet = statement.executeQuery(sql);
 
            Object[] datos = null;
            while (resultSet.next()) {
                datos = new Object[modelo.getColumnCount()];
                for (int i = 0; i < modelo.getColumnCount(); i++) {
                    datos[i] = resultSet.getObject(i + 1);
                }
                modelo.addRow(datos);
            }
            resultSet.close();
            Desconectar();
 
        } catch (SQLException ex) {
            Logger.getLogger(ConexionMySQL.class.getName()).log(Level.SEVERE, null, ex);
        }
 
        return modelo;
    }
 
    public int EjecutarConsulta(String sql)
    {
        int error = 0;
        try {
            Conectar();
            error = statement.executeUpdate(sql);
            Desconectar();
        } catch (SQLException ex) {
            Logger.getLogger(ConexionMySQL.class.getName()).log(Level.SEVERE, null, ex);
        }
 
        return error;
    }
 
    public int ConsultarEscalar(String sql)
    {
        int valor = -1;
        try {
            Conectar();
 
            statement = (Statement) conexion.createStatement();
            resultSet = statement.executeQuery(sql);
            if (resultSet.first()) {
                valor = resultSet.getInt(1);
            }
            resultSet.close();
            Desconectar();
 
        } catch (SQLException ex) {
            Logger.getLogger(ConexionMySQL.class.getName()).log(Level.SEVERE, null, ex);
        }
 
        return valor;
    }
 
}

.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }

Categorías:Programacion Etiquetas: ,
  1. 16 octubre 2012 a las 17:09

    Its like you read my mind! You seem to understand a lot approximately this, like you wrote
    the e book in it or something. I think that you simply can do with a few % to pressure the message home a bit, but other than that, this is great blog. A great read. I will certainly be back.

  2. 15 noviembre 2012 a las 6:28

    Just wish to say your article is as amazing. The clarity in your publish is just spectacular
    and i could assume you are a professional on this subject.
    Fine with your permission allow me to snatch your feed to stay updated with impending post.

    Thank you a million and please keep up the enjoyable work.

  3. 23 enero 2013 a las 11:44

    What i don’t understood is in reality how you’re not actually a lot more neatly-preferred than
    you might be now. You’re so intelligent. You know thus considerably on the subject of this topic, made me in my opinion consider it from a lot of varied angles. Its like men and women don’t seem to be interested except it’s one thing to do with Lady gaga! Your own stuffs nice. All the time deal with it up!

  4. 18 mayo 2013 a las 5:22

    Solid materials here on wordpress.com, man. I actually
    like what you have accrued right here, definitely like what
    you’re saying and the way through which you say it. You’ve taken the effort to make it simultaneously entertaining and intelligent.
    I think I can gather a lot from you. A helpful blog
    indeed.

  1. 4 mayo 2015 a las 4:33
  2. 21 junio 2015 a las 13:13
  3. 13 julio 2015 a las 22:30

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: