jueves, 15 de noviembre de 2012

CONEXION ACCESS SENCILLO EN JAVA

Este es un EJEMPLO sencillo de una CONEXION JAVA - ACCESS con CONSULTA

Aqui unos Ejemplos de Consulta, para los que no estan familiarizados con SQL

SELECT * FROM cancion
* SELECCIONA TODAS LAS FILAS DE LA TABLA cancion

SELECT * FROM cancion WUERE Nombre LIKE '%Let it be%'
* CON FILTRO "Let it be" EN LA COLUMNA Nombre


SELECT * FROM cancion WUERE Autor LIKE '%Lily%'
* CON FILTRO "Lily" EN LA COLUMNA Autor

* ETC.


ATENCION LA BASE DE DATOS DE ESTE EJEMPLO SE LLAMA "musica.mdb" Y TIENE COMO UNICA TABLA "cancion" COMO EN LA IMAGEN MAS ABAJO, Y ESTE ARCHIVO DEBE ESTAR EN LA CARPETA DEL PROYECTO PARA QUE ESTE EJEMPLO FUNCIONE, Y SI TIENEN SU PROPIO BASE DE DATOS ACCESS TBN DEBE DE ESTAR EN LA CARPETA DEL PROYECTO.
  • RESULTADO




  • COD. FUENTE

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

import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;

public class ConexionAccessSencillo extends JFrame implements ActionListener
{
    public JScrollPane PanelDeslizador;
    public JTable MiTabla = new JTable();
    public JButton btnCosulta = new JButton("Nueva Consultar");

    public ConexionAccessSencillo()
    {
        super("CONEXION A BD ACCESS SENCILLO");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setSize(600,530);
        
        FlowLayout Distribuidor = new FlowLayout(FlowLayout.CENTER,10,10);
        this.setLayout(Distribuidor);
        
        this.btnCosulta.addActionListener(this);
        
        this.CargarTabla(); 
        
        this.PanelDeslizador = new JScrollPane(this.MiTabla);
                
        this.add(this.PanelDeslizador);
        this.add(this.btnCosulta);
    }
 
    public void actionPerformed(ActionEvent e) 
    {
        this.CargarTabla();
    }   
    
    //-- CREA UNA CONEXION CON LA BASE DE DATOS CUYO RESULTADO ES "INSTRUCCION"
    public Statement CrearPuenteBD()
    {
        Connection CanalBD;
        Statement Instruccion = null;       
        
        String NombreBD = "musica.mdb"; //-- CAMBIA POR EL NOMBRE DE TU BD
        String DireccionBD = System.getProperty("user.dir") + "/" + NombreBD;
        String ConexionBD = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + DireccionBD;   
        
        try
        {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            CanalBD = DriverManager.getConnection(ConexionBD);   
            Instruccion = CanalBD.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
        }
        catch(Exception SQLE)
        {
            JOptionPane.showMessageDialog(null,"ERROR EN LA CONEXION CON BD\nERROR : " + SQLE.getMessage());
            System.exit(0);
        }          
        
        return Instruccion;
    } 
    
    //-- REALIZA LA CONSULTA CON LA INSTRUCCION SQL Y LUEGO SE LLENA LA TABLA 
    public void CargarTabla()
    {       
        String SentenciaSQL;        
        SentenciaSQL = JOptionPane.showInputDialog(null,"INGRESE LA SENTENCIA SQL");        
       
        //-- SE HACE LA CONSULTA, Y LA TABLA SE LLENA CON EL MODELO DE TABLA
        this.MiTabla.setModel(this.ConsultarBD(SentenciaSQL));
        this.MiTabla.setEnabled(false);        
    } 
    
    //-- DEFAULTTABLEMODEL ES EL MODELO DE TABLA QUE LUEGO SE AGREGARA A LA TABLA FINAL
    public DefaultTableModel ConsultarBD(String SentenciaSQL)
    {        
        ResultSet Resultado; 
        Statement Instruccion = this.CrearPuenteBD();
               
        //-- PONLE LOS NOMBRES QUE QUIERAS A TUS COLUMNAS
        //-- EL NUMERO DE NOMBRES QUE PONGAS ES DE ACUERDO A LA
        //-- CANTIDAD DE COLUMNAS QUE TENGA TU BD 
        //-- SI SON 7 COLUMNAS, PONLE 7 NOMBRES
        String[] Titulo = {"ID CANCION","NOMBRE","AUTOR","ALBUM"};
        //-- CAMBIA DE ACUERDO AL NUMERO DE COLUMNAS DE TU BD (String[COLUMNAS])
        //-- SI SON 7 COLUMNAS SERA String[] Registro = new String[7];
        String[] Registro = new String[4];

        DefaultTableModel ModeloTabla = new DefaultTableModel(null,Titulo);

        try
        {
            //-- SE EJECUTA LA INSTRUCCION, Y EL RESULTADO SE CARGA 
            //-- A ResultSet (Resultado)
            Resultado = Instruccion.executeQuery(SentenciaSQL);

            //-- LOS RESULTADOS SON DE FILA EN FILA
            //-- CON Resultado.next() SE VA VIENDO CADA FILA
            //-- HASTA QUE ESTE VOTA FALSO O QUE YA NO HAY MAS FILAS DE DATOS
            while(Resultado.next())
            {
                //-- LOS DATOS DE CADA FILA SE GUARDAN EN UN ARRAY
                
                //-- PONLE DE ACUERDO A LOS NOMBRES VERDADEROS DE LAS COLUMNAS
                //-- DE TU BD EN LA PARTE QUE DICE getString("Id_cancion")
                //-- SI SON 7 COLUMNAS ENTONCES EL ULTIMO REGISTRO SERA 
                //-- ASI => Registro[7] = Resultado.getString("NOMBRE COLUMNA 7");
                Registro[0] = Resultado.getString("Id_cancion");
                Registro[1] = Resultado.getString("Nombre");
                Registro[2] = Resultado.getString("Autor");
                Registro[3] = Resultado.getString("Album");
                             
                //-- CADA VEZ QUE TERMINA DE AGREGAR UNA FILA O ARRAY
                //-- SE AGREGA A ESTE MODELO DE TABLA
                ModeloTabla.addRow(Registro);
            }
        }
        catch (SQLException SQLE)
        {
            JOptionPane.showMessageDialog(null,"ERROR AL CARGAR LOS DATOS DE LA BD \n ERROR : " + SQLE.getMessage());
        }

        return ModeloTabla;
    }    
  
    public static void main(String[] args) 
    {
        ConexionAccessSencillo MiConexion = new ConexionAccessSencillo();
        MiConexion.setVisible(true);
    }
}


DALE CLICK EN LA IMAGEN PARA BAJARTE EL PROYECTO CON LOS 2 EJERCICIOS

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