Programación , Domótica y microcontroladores.

Hace una semana , un amigo menciono que deseaba que le ayuden con este problema y en base a esa petición se realizo este ejemplo.Espero que les sirva de referencia para cualquier proyecto que tengan en mente.

Explicación:

  • 1. Para obtener las tablas que se tiene en una base de datos Mysql ,primero , debemos aplicar el “Show Tables”.Esta sentencia nos devuelve todas las tablas de una base de datos determinada.
  • 2.-Una vez, que se tiene las tablas , se le pregunta a Mysql que queremos mostrar la descripción de cada una de ellas.Y para hacer eso aplicamos la siguiente sentencia “describe tabla_nombre”.
    Nos devuelve los capos de la tabla con sus respectivo tipo de dato.

Teniendo esto podemos ya realizar nuestra pequeña aplicación que cargue las tablas y con sus respectivos campos.
Observemos las imágenes.

Ahora , menciono las clases que se utilizaron para el proyecto con sus respectivos códigos.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 * @author Wilfo Martel S.
 * e-mail:logica_Razon@hotmail.com
 * cel:082502692
 * Usa este código para fines educativos,comerciales ,etc.  pero respeta el autor del código.
 */

package DAC;

/**
 *
 * @author Wilfo
 */
public class Global {
 public static  String strBD="";
  public static  String Url="";
  public static  String User="";
  public static  String Clave="";
  public static  String Driver="com.mysql.jdbc.Driver";

}

Ahora , la clase conexión.

 /*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 * @author Wilfo Martel S.
 * e-mail:logica_Razon@hotmail.com
 * cel:082502692
 * Usa este código para fines educativos,comerciales ,etc.  pero respeta el autor del código.
 */

package DAC;


import java.sql.*;


/**
 *
 * @author Wilfo
 */
public class Conexion {
  private String url;
  private String user;
  private String clave;
  private String Driver;
  public Conexion(){}

  public String getDriver(){
   return this.Driver;
  }

  public String getUser(){
    return this.user;
  }

  public String getClave(){
   return this.user;
  }
  public String getUrl(){
   return this.url;
  }

  public Conexion (String Driver,String Url,String User,String Clave){
   this.Driver=Driver;
   this.url=Url;
   this.user=User;
   this.clave=Clave;
  }
/**
 * Para mostrart regustros
 * @param sql
 * @return
 * @throws Exception
 */
  public ResultSet ejecutaQuery(String sql) throws Exception
  {
      ResultSet res=null;
      try{
            Class.forName(this.Driver);
            try{
                Connection con=DriverManager.getConnection(this.url,this.user,this.clave);
                Statement pstm=con.createStatement();
                res=pstm.executeQuery(sql);
            }catch(SQLException ex){ throw new Exception(ex.getMessage());   }

      }catch(ClassNotFoundException e)
      {
          throw  new Exception(e.getMessage());
      }
      return res;
  }




  

  /**
   * Muestra  registros pero con parametro PrepareStament
   * @param pstm
   * @return
   * @throws Exception
   */
    public ResultSet ejecutaPrepared(PreparedStatement pstm) throws Exception {
        ResultSet res = null;
        try {
            res = pstm.executeQuery();
        } catch (SQLException e) {
            throw new Exception(e.getMessage());
        }
        return res;
    }


    /**
     * Seleccion de datos
     * @param sql
     * @return
     * @throws Exception
     */
    public PreparedStatement  crearPreparedStm(String sql) throws Exception {
      PreparedStatement pstm=null;
      try{
          Class.forName(this.Driver);
           try
           {
               Connection con=DriverManager.getConnection(this.url,this.user,this.clave);
               pstm=con.prepareStatement(sql);
           }catch(SQLException ex){
               throw new Exception(ex.getMessage());
           }
      }catch(ClassNotFoundException e){
        throw new Exception(e.getMessage());
      }
      return pstm;
    }


    
}

Ahora , en el paquete ejemplo tenemos dos clases.La primera se llama “Bll” y la otra “Tabla_cls”

Bll.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ejemplo;
import DAC.Conexion;
import DAC.Global;
import java.sql.*;
import java.util.ArrayList;
import java.util.Vector;
/**
 *
 * @author Wilfo Martel S.
 * e-mail:logica_Razon@hotmail.com
 * cel:082502692
 * Usa este código para fines educativos,comerciales ,etc.  pero respeta el autor del código.
 */
public class Bll {

    public static Vector ListarTablas() throws Exception  {
        ResultSet res = null;
        Vector vec = new Vector();
        try {
            Conexion con = new Conexion(Global.Driver, Global.Url, Global.User, Global.Clave);
            String sql = "SHOW TABLES";
            PreparedStatement pstm = con.crearPreparedStm(sql);
            res = con.ejecutaPrepared(pstm);
            while (res.next()) {
                vec.add(res.getString(1));
            }
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
        return vec;
    }
    public static ArrayList<Tabla_cls> ListarColumnaTabla(String nomtabla) throws Exception {
        ResultSet res = null;
        Tabla_cls tabla = null;
        ArrayList<Tabla_cls> lstTabla = new ArrayList<Tabla_cls>();
        try {
            Conexion con = new Conexion(Global.Driver, Global.Url, Global.User, Global.Clave);
            String sql = "DESCRIBE " + nomtabla;
            PreparedStatement pstm = con.crearPreparedStm(sql);
            res = con.ejecutaPrepared(pstm);
            while (res.next()) {
                tabla = new Tabla_cls();
                tabla.setField(res.getString(1));
                tabla.setType(res.getString(2));
                lstTabla.add(tabla);
            }
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
        return lstTabla;
    }

}


Tabla_cls.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ejemplo;

/**
 *
 * @author Wilfo Martel S.
 * e-mail:logica_Razon@hotmail.com
 * cel:082502692
 * Usa este código para fines educativos,comerciales ,etc.  pero respeta el autor del código.
 */
public class Tabla_cls {
String field;
String type;

public Tabla_cls(){}

    public Tabla_cls(String field, String type) {
        this.field = field;
        this.type = type;
    }

    public String getField() {
        return field;
    }

    public void setField(String field) {
        this.field = field;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }
}
  • Link de descarga.Descargar aquí
  • Espero que les haya gustado.No olviden sus comentarios.
    Muy pronto un mini-framework php para agilitar la programación.

Anuncios

Comentarios en: "Cargar Tablas Mysql en Jtree en Java" (2)

  1. jimmy castro dijo:

    muy intersante tu informacion gracias

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: