lunes, 30 de julio de 2012

CONEXION JAVA CON MySQL

Esta vez les mostrare como manejar la base de datos de MySQL, desde JAVA, pero antes deben de saber lo basico del lenguaje SQL.

Les mostrare primero las imagenes de muestra del programa que yo mismo lo implemente, mas abajo les dejo el LINK del proyecto para que se lo puedan bajar.






Disculpen por el titulo "BD PERSONA" es que lo modifique de otro programa que tenia y me olvide de cambiarlo por "BD MUSICA" pero eso es lo de menos... jeje...

pero esas imagenes muestran solo la interfaz, claro ustedes lo pueden implementar como ustedes quieran,
pero lo mas importante es la clase que logre la conexion con la base de datos MySQL.

Para lograr la conexion con cualquier base de datos SQL, primero se debe cargar el DRIVER de Conexion, en cada Base de Datos es distinto, pero para MySQL se debe descargar el Driver que tiene el nombre de "mysql-connector-java-5.1.10-bin.jar" y luego agregarlo a nuestro proyecto.

Aqui les dejo el link para que descarguen el DRIVER MySQL


Una vez descargado copian el archivo al proyecto con el que esten trabajando

En esta imagen les muestro los pasos que deben seguir para agregar
Luego copian el driver en su proyecto



Luego de copiar se van a NETBEANS y luego en su proyecto le dan click derecho en Bibliotecas, y seleccionan "Agregar JAR", luego buscan la carpeta de su proyecto, y seleccionan el DRIVER que antes descargaron. Pero mejor guiense con estas imagenes.




Ahora una vez hecho los pasos anteriores, les mostrare la clase que nos servira para manejar nuestra base de datos, le pueden agregar mas metodos, pueden cambiar el nombre de vuestra Base de datos, en mi caso se llama "musica", y cambien la clave de acuerdo como configuraron vuestra BD, la direccion puede variar, en mi caso yo estoy trabajando con MySQL instalado desde AppServ.

Claro solo es un ejemplo, existe muchas formas de lograr una conexion, esta es una de las formas que yo logre hacer funcionar.

/**
 *
 *  E-Mail : shamirdhc31@gmail.com
 *  Blog   : http://javadhc.blogspot.com
 *
 */

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

public class ConexionMySQL
{
    //-- LA DIRECCION DEL DE LA BD, PUEDE SER DIFERENTE
    //-- EN ESTE CASO, SE NECESITA INSTALAR AppServ, QUE
    //-- YA VIENE CON MySQL POR DEFECTO Y CREAR LA BD "musica"
    private String NombreBD = "musica";
    public String DireccionBD = "jdbc:mysql://localhost/" + this.NombreBD;
    public String UsuarioBD = "root";
    public String ClaveBD = "123456";
    private String SentenciaSQL;
    private Connection CanalBD;
    private Statement Instruccion;
    private ResultSet Resultado;

    public ConexionMySQL()
    {
        try
        {
            Class.forName("org.gjt.mm.mysql.Driver");
            this.CanalBD = DriverManager.getConnection(this.DireccionBD,this.UsuarioBD,this.ClaveBD);
            this.Instruccion = this.CanalBD.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
        }
        catch(SQLException SQLE)
        {
            JOptionPane.showMessageDialog(null,"ERROR EN LA CONEXION CON BD\nERROR : " + SQLE.getMessage());
        }
        catch(ClassNotFoundException CNFE)
        {
            JOptionPane.showMessageDialog(null,"ERROR DRIVER BD JAVA\nERROR : " + CNFE.getMessage());
        }
    }

    public void InsertInsertar(String SentenciaSQL)
    {
        this.SentenciaSQL = SentenciaSQL;

        try
        {
            this.Instruccion.executeUpdate(this.SentenciaSQL);
            JOptionPane.showMessageDialog(null,"EL REGISTRO SE AGREGO CON EXITO A LA BD");
        }
        catch (SQLException SQLE)
        {
            JOptionPane.showMessageDialog(null,"ERROR AL INSERTAR EL REGISTRO EN LA BD \n ERROR : " + SQLE.getMessage());
        }
    }

    public void UpdateModificar(String SentenciaSQL)
    {
        this.SentenciaSQL = SentenciaSQL;

        try
        {
            this.Instruccion.executeUpdate(this.SentenciaSQL);
            JOptionPane.showMessageDialog(null,"EL REGISTRO SE MODIFICO CON EXITO A LA BD");
        }
        catch (SQLException SQLE)
        {
            JOptionPane.showMessageDialog(null,"ERROR AL MODIFICAR EL REGISTRO EN LA BD \n ERROR : " + SQLE.getMessage());
        }
    }

    public void DeleteEliminar(String SentenciaSQL)
    {
        this.SentenciaSQL = SentenciaSQL;

        try
        {
            this.Instruccion.executeUpdate(this.SentenciaSQL);
            JOptionPane.showMessageDialog(null,"EL REGISTRO SE ELIMINO CON EXITO A LA BD");
        }
        catch (SQLException SQLE)
        {
            JOptionPane.showMessageDialog(null,"ERROR AL ELIMINAR EL REGISTRO DE LA BD \n ERROR : " + SQLE.getMessage());
        }
    }
    
    //-- ESTE METODO DEVUELVE UNA TABLA PARA MOSTRAR
    //-- PERO SI QUIERES LO PUEDES MODIFICAR PARA QUE
    //-- TE DEVUELVA UNA MATRIZ, O LO QUE QUIERAS
    public DefaultTableModel SelectConsultar(String SentenciaSQL)
    {
        this.SentenciaSQL = SentenciaSQL;

        //-- ESTO PUEDE VARIAR VARIAR SEGUN A LA BD CON LA QUE TRABAJAS
        String[] TITULOS = {"ID CANCION","NOMBRE","AUTOR","ALBUM"};
        String[] REGISTRO = new String[4];

        DefaultTableModel TABLA = new DefaultTableModel(null,TITULOS);

        try
        {
            this.Resultado = Instruccion.executeQuery(this.SentenciaSQL);

            while(Resultado.next())
            {
                REGISTRO[0] = Resultado.getString("Id_cancion");
                REGISTRO[1] = Resultado.getString("Nombre");
                REGISTRO[2] = Resultado.getString("Autor");
                REGISTRO[3] = Resultado.getString("Album");

                TABLA.addRow(REGISTRO);
            }
        }
        catch (SQLException SQLE)
        {
            JOptionPane.showMessageDialog(null,"ERROR AL CARGAR LOS DATOS DE LA BD \n ERROR : " + SQLE.getMessage());
        }

        return TABLA;
    }
}

Aqui Les dejo el proyecto que implemente para que les sirva de ejemplo 
Pero para que funcione la conexion a la base de datos MySQL debes instalar "AppServ".

Al instalar les pedira la clave para MySQL, no se olviden, y colocan "localhost" en el nombre del servidor, Aqui les dejo el link del programa AppServ.


Y luego de instalar, la carpeta "musica", que viene dentro de la carpeta que descargaran, lo copian dentro de la carpeta "data" en la direccion C:\AppServ\MySQL\data, la carpeta "musica" es la base de datos MySql con el que trabaja el proyecto que cree...

Y listo Ahora Para que vean mejor como funciona les dejo el proyecto que interactua con la base de datos MySQL, ya no necesitan descargar el driver ya viene incluido y agregado en el proyecto

DALE CLICK EN LA IMAGEN PARA BAJARTE EL PROYECTO CON EL EJERCICIO


IMPORTANTE : "TODOS LOS CODIGOS INDICADOS AQUI SON ESCRITOS POR MI, ASI QUE CUALQUIER DUDA O EJERCICIO QUE NO PUEDAN RESOLVER, NO DUDEN EN MANDARME UN E-MAIL A MI CORREO"
shamirdhc31@gmail.com