Could you help me fill a combo box with data from a table in mysql. The problem is that the table has a iD
, a name and a unit. But when filling the combobox I need the names to appear; and when selecting one, what I really need is the id of that item. then save that id in another table where it is a foreign key. The table that I want to call the combobox is one of Product Type, where the product types will be, with their id, name and unit. Then in the other table what I want to fill are the Products themselves, where you have the product id, the product type id and its name.
Here is the code for my database:
-- MySQL Workbench Forward Engineering
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
-- -----------------------------------------------------
-- Schema tiendapoo
-- -----------------------------------------------------
DROP SCHEMA IF EXISTS `tiendapoo` ;
-- -----------------------------------------------------
-- Schema tiendapoo
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `tiendapoo` DEFAULT CHARACTER SET utf8 ;
USE `tiendapoo` ;
-- -----------------------------------------------------
-- Table `tiendapoo`.`TipoProducto`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `tiendapoo`.`TipoProducto` ;
CREATE TABLE IF NOT EXISTS `tiendapoo`.`TipoProducto` (
`idTipoProducto` INT NOT NULL AUTO_INCREMENT,
`nombreTipo` VARCHAR(45) NOT NULL,
`unidad` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idTipoProducto`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `tiendapoo`.`Producto`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `tiendapoo`.`Producto` ;
CREATE TABLE IF NOT EXISTS `tiendapoo`.`Producto` (
`idProducto` INT NOT NULL AUTO_INCREMENT,
`idTipoProducto` INT NOT NULL,
`nombre` VARCHAR(150) NOT NULL,
PRIMARY KEY (`idProducto`),
INDEX `fk_Producto_TipoProducto1_idx` (`idTipoProducto` ASC) VISIBLE,
CONSTRAINT `fk_Producto_TipoProducto1`
FOREIGN KEY (`idTipoProducto`)
REFERENCES `tiendapoo`.`TipoProducto` (`idTipoProducto`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `tiendapoo`.`Usuario`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `tiendapoo`.`Usuario` ;
CREATE TABLE IF NOT EXISTS `tiendapoo`.`Usuario` (
`idUsuario` INT NOT NULL AUTO_INCREMENT,
`nombre` VARCHAR(45) NOT NULL,
`apellidos` VARCHAR(150) NOT NULL,
`login` VARCHAR(45) NOT NULL,
`clave` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idUsuario`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `tiendapoo`.`ProductoUsuario`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `tiendapoo`.`ProductoUsuario` ;
CREATE TABLE IF NOT EXISTS `tiendapoo`.`ProductoUsuario` (
`idProductoUsuario` INT NOT NULL AUTO_INCREMENT,
`idUsuario` INT NOT NULL,
`idProducto` INT NOT NULL,
PRIMARY KEY (`idProductoUsuario`),
INDEX `fk_ProductoUsuario_Producto_idx` (`idProducto` ASC) VISIBLE,
INDEX `fk_ProductoUsuario_Usuario1_idx` (`idUsuario` ASC) VISIBLE,
CONSTRAINT `fk_ProductoUsuario_Producto`
FOREIGN KEY (`idProducto`)
REFERENCES `tiendapoo`.`Producto` (`idProducto`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_ProductoUsuario_Usuario1`
FOREIGN KEY (`idUsuario`)
REFERENCES `tiendapoo`.`Usuario` (`idUsuario`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `tiendapoo`.`Almacen`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `tiendapoo`.`Almacen` ;
CREATE TABLE IF NOT EXISTS `tiendapoo`.`Almacen` (
`idAlmacen` INT NOT NULL AUTO_INCREMENT,
`codigo` VARCHAR(45) NOT NULL,
`nombreAlmacen` VARCHAR(150) NOT NULL,
`direccion` VARCHAR(150) NOT NULL,
PRIMARY KEY (`idAlmacen`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `tiendapoo`.`ProductoAlmacen`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `tiendapoo`.`ProductoAlmacen` ;
CREATE TABLE IF NOT EXISTS `tiendapoo`.`ProductoAlmacen` (
`idProductoAlmacen` INT NOT NULL AUTO_INCREMENT,
`idProducto` INT NOT NULL,
`idAlmacen` INT NOT NULL,
`cantidad` DOUBLE(14,2) NOT NULL,
PRIMARY KEY (`idProductoAlmacen`),
INDEX `fk_ProductoAlmacen_Producto1_idx` (`idProducto` ASC) VISIBLE,
INDEX `fk_ProductoAlmacen_Almacen1_idx` (`idAlmacen` ASC) VISIBLE,
CONSTRAINT `fk_ProductoAlmacen_Producto1`
FOREIGN KEY (`idProducto`)
REFERENCES `tiendapoo`.`Producto` (`idProducto`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_ProductoAlmacen_Almacen1`
FOREIGN KEY (`idAlmacen`)
REFERENCES `tiendapoo`.`Almacen` (`idAlmacen`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `tiendapoo`.`Salida`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `tiendapoo`.`Salida` ;
CREATE TABLE IF NOT EXISTS `tiendapoo`.`Salida` (
`idSalida` INT NOT NULL AUTO_INCREMENT,
`fecha` DATE NOT NULL,
`hora` TIME NOT NULL,
`destino` VARCHAR(150) NOT NULL,
PRIMARY KEY (`idSalida`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `tiendapoo`.`DetalleSalida`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `tiendapoo`.`DetalleSalida` ;
CREATE TABLE IF NOT EXISTS `tiendapoo`.`DetalleSalida` (
`idDetalleSalida` INT NOT NULL AUTO_INCREMENT,
`idSalida` INT NOT NULL,
`idProductoAlmacen` INT NOT NULL,
`cantidadSalida` FLOAT NOT NULL,
PRIMARY KEY (`idDetalleSalida`),
INDEX `fk_DetalleSalida_ProductoAlmacen1_idx` (`idProductoAlmacen` ASC) VISIBLE,
INDEX `fk_DetalleSalida_Salida1_idx` (`idSalida` ASC) VISIBLE,
CONSTRAINT `fk_DetalleSalida_ProductoAlmacen1`
FOREIGN KEY (`idProductoAlmacen`)
REFERENCES `tiendapoo`.`ProductoAlmacen` (`idProductoAlmacen`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_DetalleSalida_Salida1`
FOREIGN KEY (`idSalida`)
REFERENCES `tiendapoo`.`Salida` (`idSalida`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
You must have in your logic a method that calls the table and takes it to a list something like this:
When you create the combobox control (that sounds like .net :) Jcombobox
then in the action event of the combo
hope it guides you...