How to fill a combobox in Netbeans with data from a table in mysql

0

They could help me fill out a combo box with the data of 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. for then that id keep it in another table where it is a foreign key. The table that I want to call the combobox is a Type of product, 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 id of the product, the id of the type of product and its name.

then I pass the code from 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;
    
asked by Diego Chavez 22.11.2018 в 19:47
source

1 answer

1

You must have in your logic a method that calls the table and take it to a list something like this:

    @Override
public ArrayList<TipoProducto> getTipoProducto() {
    ArrayList<TipoProducto> expenses = new ArrayList<TipoProducto>();

        Statement stmt = myConnection.createStatement();
        ResultSet result = stmt.executeQuery("SELECT * FROM tiendapoo.TipoProducto");
        while(result.next()){

            expenses.add(new Integer(result.getInt(1)));//id Tipo Producto
            expenses.addt(result.getString(2)); //nombre Producto
            }

    return expenses;
}

When you create control of the combobox (that sounds like .net :) Jcombobox

List<TipoProducto> lstTipoProducto = new ArrayList<TipoProducto>(); 
jComboBox.setModel(new DefaultComboBoxModel(ls.toArray()));

then in the combo action event

    public void actionPerformed(ActionEvent e)
{
    JComboBox comboBox = (JComboBox)e.getSource();
    Item item = (Item)comboBox.getSelectedItem();
    System.out.println( item.getIdTipoProducto() + " : " + item.getNombre() );
}

I hope I lead you ...

    
answered by 22.11.2018 / 20:06
source