viernes, 9 de agosto de 2013

jComboBoxBD carga datos en un JComboBox desde Mysql con java fácil y rapido


Hoy les enseño como cargar un JComboBox con datos provenientes de una base de datos MySql ,este ejemplo lo hice con el fin de ayudar a unos integrantes de un grupo en java el cual soy miembro.
Para ello cree una clasejComboBoxBD donde tengo un método muy sencillo pero bastante útil a la hora de cargar datos ,este método recibe dos valores String el primero la sintaxis SQL y el segundo elcampode la tabla en la base de datos que necesito para extraer los datos y añadadirlos al combo.

try{

ResultSet rs;
rs=ConexionBD.Consulta(sql);
while (rs.next()) {
this.addItem(rs.getString(campo));
}
}
catch(Exception ex){
System.out.println("ERROR EN AL CARGAR DATOS");
}


como podrán ver es bastante sencillo tengo mi claseResulSetdeclarada como variable la cual me recibe los valores que retorna la consulta de la claseConexionBD esta clase se encarga de conectarme a la Base de datos y el método Consulta de ejecutar lasentencia SQL luego necesito un siclo while para que el resulset sea recorrido por el método next() desde el primer registro y termina cuando el rs.next() sea null, y con el método getString() el cual me recibe el nombre del campo o el nombre de la columna de la base de datos que necesito extraer los valores este me los retorna para que sean añadidos al JComboBox .

Con este metodo podre realizar consultas ya sea simples o mas complejas como por ejemplo como seria si necesito unir DOS TABLAS y obtener un columna en especifico ?

combo_box_union = new jComboBoxBD();
combo_box_union.setInjectSQL("SELECT datos_varios.profesor AS profe FROM datos_persona INNER JOIN datos_varios ON (datos_persona.codigo = datos_varios.codigo);", "profe");




el métodosetInjectSQL(sql,campo) , se encarga de realizar la consulta y de añadir los items de esta manera podrán utilizar el elemento cuantas veces sea necesario sin tener ningún problema y ahorrar mas codigo. les dejo el codigo fuente completo



DESCARGAR
,

1 comentario: