Uno de los componentes que normalmente utilizamos para «cargar» información de nuestras tablas de una base de datos, son los JComboBox o listas desplegables; con ellas podemos mostrar un listado de datos para que el usuario del Software pueda seleccionar de forma rápida, sin embargo. A nosotros como programadores, nos interesa conocer el «ID» del registro seleccionado, para almacenar en las tablas de la base de datos registros relacionados. A continuación veremos un ejemplo de cómo obtener el ID de un JComboBox en Java que te servirá para utilizarlo en tus proyectos de forma simple.
Cómo obtener el ID de un JComboBox en Java (MySQL)
Descripción del escenario: Tenemos una tabla en MySQL de productos tecnológicos y deseamos mostrarlos en un JComboBox, así mismo obtener el ID del producto seleccionado.
1. Nuestra tabla en MySQL
Veamos cómo está constituida la tabla en la base de datos que utilizaremos para este ejemplo:
CREATE TABLE `productos`( `id` INT(10) NOT NULL AUTO_INCREMENT, `nombre` VARCHAR(50), `desc` VARCHAR(100), PRIMARY KEY (`id`) );
Código fuente: Proyecto CRUD en Java MVC – con base de datos MySQL
Luego de crear la tabla, inmediatamente insertamos algunos registros:
🌟 ¡Visita Nuestra Tienda para Programadores! 🌟Descubre Códigos Fuente, Cursos, Software, Computadoras, Accesorios y Regalos Exclusivos. ¡Todo lo que necesitas para llevar tu programación al siguiente nivel!
INSERT INTO `productos` (`nombre`, `marca`) VALUES ('TECLADO', 'HP'); INSERT INTO `productos` (`nombre`, `marca`) VALUES ('MOUSE', 'MICROSOFT'); INSERT INTO `productos` (`nombre`, `marca`) VALUES ('MEMORIA USB 3.0', 'KINGSTON'); INSERT INTO `productos` (`nombre`, `marca`) VALUES ('MONITOR LCD', 'LG');
2. Clase conexión
Esta clase es necesaria para que nuestro proyecto pueda comunicarse con MySQL.
package combobox; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.JOptionPane; public class ConexionMYSQL { public Connection conexion; public Statement sentencia; public ResultSet resultado; public void ConectarBasedeDatos() { try { final String Controlador = "com.mysql.jdbc.Driver"; Class.forName(Controlador); final String url_bd = "jdbc:mysql://localhost:3306/db_test"; conexion = DriverManager.getConnection(url_bd, "root", "root"); sentencia = conexion.createStatement(); } catch (ClassNotFoundException | SQLException ex) { JOptionPane.showMessageDialog(null, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } } public void DesconectarBasedeDatos() { try { if (conexion != null) { if (sentencia != null) { sentencia.close(); } conexion.close(); } } catch (SQLException ex) { JOptionPane.showMessageDialog(null, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); System.exit(1); } } public Connection getConnection() { return conexion; } }
Recuerda que para utilizar esta clase, debes importar la librería: .
3. Clase productos
Sigue a la página 2.
Excelente post amigo! El portal muuuuy bien!
Muy buen aporte, pero tengo una pregunta. Si obtengo los datos como el «ID» y «name» obtenidos de un JTable. Suponemos que tenemos cargado en el Jcombobox los datos de id y Name (Solo muestro el name). A la hora de seleccionar en la tabla tomo el ID y quiero compararlo y seleccionarlo en el JCombobox. Cual es el procedimiento. En resumen seria tomar el valor ID de la tabla y mostrarlo en el Jcombobox. Como seria. Saludos,