Si necesitas un código de programación en específico, escríbeme al formulario de contacto.

BUSCA TU CÓDIGO


BUSCA MÁS CÓDIGOS DE PROGRAMACIÓN AQUÍ:

Código JAVA: Cargar JComboBox con registros de una base de datos


Código JAVA anterior:
Cambiar tamaño (alto) del Header de un JTable

-------------------------------------------------------------------------------------------

Este post está orientado a la aplicación e implementación de un bloque de código JAVA, que nos permitirá mostrar en un ComboBox los registros almacenados en una tabla de la base de datos; lo cual, nos ayudará a tener formularios más dinámicos, ya que, en este caso, componentes como los JComboBox mostrarán información actualizada a medida que alimentemos nuestra base de datos:

Método Consultar países:
public class Cargar_Combobox { 
 
Pool metodospool = new Pool();

public void consultar_paises(JComboBox cbox_paises){

//Creamos objeto tipo Connection    
java.sql.Connection conectar = null;    
PreparedStatement pst = null;
ResultSet result = null;

//Creamos la Consulta SQL
String SSQL = "SELECT nombre_pais FROM pais ORDER BY nombre_pais ASC";

//Establecemos bloque try-catch-finally
try {
       
   //Establecemos conexión con la BD 
   conectar = metodospool.dataSource.getConnection();  
   //Preparamos la consulta SQL
   pst = conectar.prepareStatement(SSQL);
   //Ejecutamos la consulta
   result = pst.executeQuery();
   
   //LLenamos nuestro ComboBox
   cbox_paises.addItem("Seleccione una opción");
   
   while(result.next()){
   
       cbox_paises.addItem(result.getString("nombre_pais"));
   
   }
   
    
} catch (SQLException e) {

    JOptionPane.showMessageDialog(null, e);
    
}finally{

    if(conectar!=null){
        
        try {
        
            conectar.close();
            result.close();
            
            conectar=null;
            result=null;
            
        } catch (SQLException ex) {
            
            JOptionPane.showMessageDialog(null, ex);
        
        }
    
    }

}
    

} 
 

}

 


Clase del JFrame (Formulario_Combobox):
public class Formulario_Combobox extends javax.swing.JFrame {

    Cargar_Combobox metodos_cargarcombobox = new Cargar_Combobox();
    
    
    public Formulario_Combobox() {
        
                
        initComponents();
        
        //Cargamos nuestro ComboBox con información de la BD
        metodos_cargarcombobox.consultar_paises(cbox_Paises);
        
    }

}



Instrucciones y Recomendaciones 

1. Antes que todo, deberás copiar y pegar las siguientes librerías, las cuales son sumamente necesarias para que el código que vamos a implementar (Método Consultar Países) funcione sin inconvenientes.
Recuerda pegarlas
después de la línea de código que representa el nombre del paquete (ej. package Metodos;) y sobre la línea de código que identifica el nombre de tu Clase (ej. public class Cargar_ComboBox{...):

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;






2. Copia y pega el código resaltado en color verde y el de color amarillo, luego de la llave de apertura "{" de la Clase JAVA donde tienes los métodos de tu proyecto.
En la primera línea de código (color verde), lo que se hace es instanciar un objeto de la Clase Pool que permite la conexión con la Base de datos, y al que hemos llamado "metodospool":
Pool metodospool = new Pool();
3. Siguiendo con el apartado de color amarillo, este representa la estructura de un método que nos ayudará a cargar nuestro JComboBox con registros almacenados en una tabla de la base de datos
En la primera parte, definimos las propiedades de nuestro método, en este caso, "public" (para que esté disponible y sea accedido desde otras Clases) y "void" (no esperamos que devuelva un valor desde su interior); a continuación, le especificamos un nombre, el cual ya sabemos que debe ir relacionado acorde a la función que llevará o ejecutará el método, por ello lo hemos llamado "consultar_paises".

Lo que sigue ahora, es colocar entre paréntesis "()" los parámetros que el método necesitará para llevar a cabo el proceso de forma adecuada. 
Para esta oportunidad, hemos asignado 1 sólo parámetro de tipo "JComboBox" (cbox_paises).

Luego, inmediatamente después del paréntesis de cierre ")", vamos a colocar un par de llaves, una de apertura "{", y otra de cierre "}", las cuales van a delimitar y a contener todo el código de nuestro método "consultar_paises":
 


public void consultar_paises(JComboBox cbox_paises){}


4. Dentro de las llaves de nuestro método, lo primero que haremos será crear una serie de variables u objetos que nos permitirán llevar a cabo la conexión con nuestra base de datos, y administrarla de acuerdo a lo que necesitaremos.
Y procederemos a instanciarlas con un valor "null":

java.sql.Connection conectar = null;    
PreparedStatement pst = null;
ResultSet result = null;




5. En el siguiente paso, crearemos una variable de tipo "String", y que llamaremos "SSQL", a la cual le asignaremos la sentencia SQL que nos permitirá traer la información desde nuestra base de datos (ver explicación de la estructura de sentencias SQL para consultar información de una base de datos) y que mostraremos en nuestro JComboBox:
String SSQL = "SELECT nombre_pais FROM pais ORDER BY nombre_pais ASC";

6. Emplearemos un bloque "try{}catch(){}finally{}". 
Dentro de las llaves "{}" del "try", haremos varias cosas:

a. Usaremos el objeto tipo "Connection", y luego del signo igual "=" procederemos a usar el objeto "metodospool", con el cual tendremos acceso al objeto y/o variable de tipo "DataSource" de la Clase Pool que creamos en un artículo anterior, aplicándole posteriormente el método ".getConnection()"; con esto, estaremos estableciendo la conexión con la base de datos:
conectar = metodospool.dataSource.getConnection();
b. Vamos a preparar y a verificar la sentencia SQL, con la que consultaremos los datos; por lo cual, usaremos la variable del tipo "PreparedStatement", a la que hemos llamado "pst"; luego del signo igual (=), usaremos el objeto "conectar", al cual le aplicaremos el método ".prepareStatement()", a su vez, a este le pasaremos como parámetro, la variable "SSQL":
pst = conectar.prepareStatement(SSQL);
c. Haremos uso del objeto de tipo "ResultSet", que hemos identificado con el nombre de "result". Luego del signo igual "=" llamaremos al objeto "pst" y le aplicaremos el método ".executeQuery()":
result = pst.executeQuery();
Lo que hacemos en este punto es ejecutar la sentencia SQL, y almacenar en este objeto (result) la información extraída de nuestra base de datos.
d. Una vez obtenida la información, el siguiente paso a seguir será llenar nuestro JComboBox con la misma; sin embargo, lo que haremos antes será asignar el ítem (dato) que se mostrará por defecto en la posición número uno; para ello, llamamos el parámetro que le pasamos a nuestro método, en este caso "cbox_paises", y le aplicamos el método ".addItem()" al cual le pasamos como parámetro el dato que queremos mostrar, en este caso: "Seleccione una opción":  
cbox_paises.addItem("Seleccione una opción");
e. Ahora, haciendo uso de un ciclo condicional "while", verificaremos la información obtenida en nuestro objeto "result" aplicandole el método ".next()", a medida que se vayan encontrando registros, y al igual como hicimos en el punto anterior (d), llamamos el parámetro que le pasamos a nuestro método, en este caso "cbox_paises", y le aplicamos el método ".addItem()" al cual en este caso le pasamos como parámetro el objeto "result", aplicándole el método ".getString()" y dentro los paréntesis de dicho método entre comillas dobles "" colocaremos el nombre del campo de la tabla de nuestra base de datos, donde está almacenada la información que mostraremos en el JComboBox:  
while(result.next()){
   
       cbox_paises.addItem(result.getString("nombre_pais"));
   
}
Teniendo en cuenta las líneas de código de los puntos a, b, c, d, y e; la sección del "try{}" quedaría así:  
try {
       
   //Establecemos conexión con la BD 
   conectar = metodospool.dataSource.getConnection();  
   //Preparamos la consulta SQL
   pst = conectar.prepareStatement(SSQL);
   //Ejecutamos la consulta
   result = pst.executeQuery();
   
   //LLenamos nuestro ComboBox
   cbox_paises.addItem("Seleccione una opción");
   
   while(result.next()){
   
       cbox_paises.addItem(result.getString("nombre_pais"));
   
   }
   
    
}


7. En la parte del "catch(){}", dentro de los paréntesis "()" establecemos el tipo de excepción que puede producirse (SQLException), y la almacenaremos y/o capturaremos en una variable llamada "error".
Ahora, dentro de las llaves de apertura "{" y de cierre "}", haremos uso del componente "JOptionPane", esto con el fin de mostrarle al usuario a través de un pequeño cuadro de diálogo, el error que se ha producido; es decir, la causa que llevó a que no se eliminaran los datos. A dicho componente le aplicaremos el método ".showMessageDialog()", al cual le pasaremos 2 parámetros: el primero de ellos lo dejaremos "null"; y el segundo, será la variable "error":

catch (SQLException error) {

    JOptionPane.showMessageDialog(null, error);
    
}   

8. En la última sección del método consultar_paises(), vemos la parte del "finally{}", dentro de sus llaves utilizamos un condicional "if", en el cual comprobaremos si la conexión con la base de datos no es nula (null); en tal caso, se procederá a ejecutar lo que hemos establecido dentro del "if", y que básicamente consiste en un bloque "try{}catch(){}"

Dentro del "try{}", usamos los objetos y/o variables "conectar" y "result", a estos les estableceremos el método ".close()" y les asignaremos un valor "null", con el fin de cerrar y/o liberar la conexión que se utilizó para realizar la consulta de registros en la base de datos; luego, en la parte del "catch(){}", establecemos el tipo de excepción (SQLException) y la capturamos en una variable llamada "error2"; posteriormente, dentro de las llaves del "catch", vamos a usar un componente "JOptionPane.showMessageDialog", y cuando se produzca una excepción o error, se le informará al usuario del software, a través de una pequeña ventanita (cuadro de diálogo):

finally{

    if(conectar!=null){
        
        try {
        
            conectar.close();
            result.close();
            
            conectar=null;
            result=null;
            
        } catch (SQLException error2) {
            
            JOptionPane.showMessageDialog(null, ex);
        
        }
    
    }

}


9. Debes dirigirte a tu formulario (donde está el JComboBox), y ubicarte en la parte del código; luego, procederás a copiar y pegar la línea de código resaltada con color azul, después de la llave de apertura "{" de la Clase de tu JFrame. 
Básicamente, lo que se hace es instanciar un objeto de la Clase donde creamos el método consultar_paises(), a dicho objeto lo hemos llamado "metodos_cargarcombobox":
Cargar_Combobox metodos_cargarcombobox = new Cargar_Combobox();
10. Ubicado allí en tu formulario, deberás irte al método "Constructor" del mismo, y posteriormente copiarás y pegarás dentro de este, el código resaltado de color naranja.

metodos_cargarcombobox.consultar_paises(cbox_Paises);
 
Como podrás notar, hacemos uso del objeto que hemos instanciado "metodos_cargarcombobox", y posteriormente hacemos uso del método "consultar_paises()", pasándole como parámetro el JComboBox (cbox_Paises) de nuestro formulario (JFrame).
NOTA: Este fragmento de código debemos ubicarlo luego del método "initComponents();" (en el caso que uses NetBeans IDE).

11. Ahora sólo basta con ejecutar tu proyecto y hacer las respectivas pruebas:

JComboBox con información extraída de una tabla de la Base de Datos.
JComboBox con Items


¿Quieres aprender más de JAVA?
Si deseas saber cómo cargar un ComboBox con registros de una base de datos, pero de forma netamente gráfica usando NetBeans IDE, o ver otros temas muy interesantes, no te olvides de revisar los tips de JAVAseguir el Curso: Cómo lo hago en JAVA?

Accede a todos los fragmentos de código que hemos publicado en este lenguaje hasta el momento, dando clic en el siguiente enlace: Ver listado de códigos JAVA.

Suscríbete a nuestro blog, vía Email o RSS; además puedes seguirnos a través de nuestras redes sociales como: Facebook, Twitter, y Google+.

¿Conoces una forma más óptima de realizar el anterior procedimiento?, no dudes en compartir tu conocimiento con todos nuestros amigos de la web.

Si te fue de gran ayuda esta información, no olvides compartirla con tus amigos y en las redes sociales.
Si tienes dudas o sugerencias al respecto, abajo puedes dejarnos tus comentarios.
Bendiciones...





Comparte este código


No hay comentarios.:

Publicar un comentario