Slider

sábado, 4 de octubre de 2014

Obtener numero de columnas y nombre de las conlumnas de una consulta en Java y Mysql (simulacion de consola MySql en Java)

Java y Mysql A continuación veremos como obtener el numero de las columnas y el nombre de cada en java.

Suponiendo que ya tienen la librería MySql en el proyecto continuamos con lo siguiente:
Como ejemplo basico representaremos lo que nos mostraria la consola de mysql en un simple select *from

Una mejor manera de decirlo es que haremos una simulacion de la consola MySql (manera sencilla).
Enmi caso mi consulta es select *from usuarios y el resultado de mi consulta en la consola es la siguiente

Ocuparemos dos archivos (Main.java y Conexion.java), en el archivo Conexion.java colocamos el siguiente codigo
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;


public class Conexion {
 private Connection conexion;
 public Conexion(){
  try{
   Class.forName("com.mysql.jdbc.Driver").newInstance();
  
//reemplazar cada uno con sus respectivos datos, nombreBD =nombre de la base de datos
//user =usuario de la bd 
//pasa=contraseña
   conexion=DriverManager.getConnection("jdbc:mysql://127.0.0.1/nombreBD","user","pass");
  }catch(Exception e){
   e.printStackTrace();
  }
 }
 
 public void ejecutarConsulta(String sql){
  String v,c;
  try{
   Statement st=conexion.createStatement();
   //almacenamos el resultado en un ResultSet rs
   ResultSet rs=st.executeQuery(sql);
   //creamos una variable que ocuparemos para que no se imprima varias veces el nombre de la columna
   boolean yapaso=false;  
   //ocupamos el while para recorrer el resultSet
   while(rs.next()){
    v="";
    c="";
    //con los metodos getMetaData y getColunmnCount obtenemos el numero de columnas que arroja nuestra consulta
     int numColumnas=rs.getMetaData().getColumnCount();
     //si no ha pasado entramos en el if
     if(!yapaso){
      //con un ciclo for que va de 1 hasta n numero de columnas
      for(int i=1;i<=numColumnas;i++){     
       //solicitamos el nombre de la columna con el metodo getColumnName pasandole el numero de columna del cual queremos obtener el nombre
       //que esta en la variable i y y concatenamos el nombre ala variable para que vaya uniendo los nombres de cada columna y los imprima en una sola linea
       c +="Nombre C"+i+"=>"+rs.getMetaData().getColumnName(i)+" \t\t\t";
      }
      //imprimimos la variable c
      System.out.println(c);
      //hacemos yapaso en true para que no vuelva a imprimir los nombres de columnas
      yapaso=true;
     }
     
     for(int i=1;i<=numColumnas;i++){
      //ahora con un ciclo for obtenemos el valor de cada columna e igual concatenamos los valores
      v+="Column "+i +"=>"+rs.getString(i)+" \t\t\t";
     }
     //imprimimos la variable v
     System.out.println(v);
   }
   
  }catch(Exception e){
   e.printStackTrace();
  }
 }
}


En el archivo Main.java colocamos el siguiente codigo
import java.util.ArrayList;
import java.util.List;


public class Main {
 private static List lista = new ArrayList<>();
 public static void main(String ...a) {
  Conexion c=new Conexion();
  //ejecutamos una consulta
  c.ejecutarConsulta("select *from usuarios");
 } 
}

Ahora ejecutamos el archivo main (recuerden cambiar nombre y contraseña de la bd asi como la consulta que vaya acorde con sus tablas. y nos imprime enconsola lo siguiente

Como les mencione es de manera sencilla pero pues es bueno para practicar, Saludos, nos vemos.

No hay comentarios:

Publicar un comentario