Data insertion - Foreign keys in Java

Asked

Viewed 731 times

1

I’m having a little trouble implementing the foreign keys in my project.

Daoproduct.java.

public class DAOProdutoImpl implements DAOProduto {
private GerenciadorDeConexao gc;

public DAOProdutoImpl(){
    gc =  GerenciadorDeConexaoMysql.getInstancia();
}

@Override
public void inserir(Produto p)throws ConexaoException,RepositorioException{
    Connection c = gc.conecta();
    String sql = "INSERT into Produtos (nome_produto,preco_produto,quantidade_produto,genero_produto,cnpj_fornecedor) VALUES(?,?,?,?,?)";
    try{
        PreparedStatement pstm = c.prepareStatement(sql);
        pstm.setString(1, p.getNome_produto());
        pstm.setFloat(2, p.getPreco_produto());
        pstm.setInt(3, p.getQuantidade_produto());
        pstm.setString(4, p.getGenero_produto());
        pstm.setString(5, p.getFornecedor().getCnpj_Fornecedor());
        pstm.executeUpdate();
    }catch(SQLException e){
        throw new RepositorioException(e);
    }finally{
        gc.desconecta(c);
    }
}
}

Daofornecedor.java

public class DAOFornecedorImpl implements DAOFornecedor {

private GerenciadorDeConexao gc;

public DAOFornecedorImpl(){
    gc = GerenciadorDeConexaoMysql.getInstancia();
}

@Override
public void cadastrar(Fornecedor f) throws ConexaoException, RepositorioException {
  Connection c = gc.conecta();
  String sql = "INSERT into Fornecedor (cnpj_Fornecedor,endereco_Fornecedor,telefone_Fornecedor,razaosocial_Fornecedor) VALUES(?,?,?,?)";  
   try {
        PreparedStatement pstm = c.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
        pstm.setString(1, f.getCnpj_Fornecedor());
        pstm.setString(2, f.getEndereço_Fornecedor());
        pstm.setString(3, f.getTelefone_Fornecedor());
        pstm.setString(4, f.getRazaosocial_Fornecedor());   
        pstm.executeUpdate();
        ResultSet rs = pstm.getGeneratedKeys();
        rs.next();
        String codGerado = rs.getString(1);
        f.setCnpj_Fornecedor(codGerado);
   } catch (SQLException e) {
       throw new RepositorioException(e);
   } finally  {
       gc.desconecta(c);
   }

}
}

Java product.

public class Produto {
private Integer codigo_produto;
private String nome_produto;
private Float preco_produto;
private Integer quantidade_produto;
private String genero_produto;
private Fornecedor fornecedor;


public Produto() {
    fornecedor = new Fornecedor();
}


public Produto(String nome, Float preco, Integer quantidade, String genero,Fornecedor fornecedor){
    this.nome_produto = nome;
    this.preco_produto = preco;
    this.quantidade_produto = quantidade;
    this.genero_produto = genero;
    this.fornecedor = fornecedor;

}
/**
 * @return the codigo_produto
 */
public Integer getCodigo_produto() {
    return codigo_produto;
}

/**
 * @param codigo_produto the codigo_produto to set
 */
public void setCodigo_produto(Integer codigo_produto) {
    this.codigo_produto = codigo_produto;
}

/**
 * @return the nome_produto
 */
public String getNome_produto() {
    return nome_produto;
}

/**
 * @param nome_produto the nome_produto to set
 */
public void setNome_produto(String nome_produto) {
    this.nome_produto = nome_produto;
}

/**
 * @return the preco_produto
 */
public Float getPreco_produto() {
    return preco_produto;
}

/**
 * @param preco_produto the preco_produto to set
 */
public void setPreco_produto(Float preco_produto) {
    this.preco_produto = preco_produto;

}

/**
 * @return the quantidade_produto
 */
public Integer getQuantidade_produto() {
    return quantidade_produto;
}

/**
 * @param quantidade_produto the quantidade_produto to set
 */
public void setQuantidade_produto(Integer quantidade_produto) {
    this.quantidade_produto = quantidade_produto;
}

/**
 * @return the genero_produto
 */
public String getGenero_produto() {
    return genero_produto;
}

/**
 * @param genero_produto the genero_produto to set
 */
public void setGenero_produto(String genero_produto) {
    this.genero_produto = genero_produto;
}

/**
 * @return the fornecedor
 */
public Fornecedor getFornecedor() {
    return fornecedor;
}

/**
 * @param fornecedor the fornecedor to set
 */
public void setFornecedor(Fornecedor fornecedor) {
    this.fornecedor = fornecedor;
}
}

Java vendor.

public class Fornecedor {

private String cnpj_Fornecedor;
private String endereço_Fornecedor;
private String telefone_Fornecedor;
private String razaosocial_Fornecedor;

/**
 *
 */
public Fornecedor(){

}

public Fornecedor(String cnpj_Fornecedor, String endereço_Fornecedor, String telefone_Fornecedor, String razaosocial_Fornecedor){        

this.cnpj_Fornecedor = cnpj_Fornecedor;
this.endereço_Fornecedor = endereço_Fornecedor;
this.telefone_Fornecedor = telefone_Fornecedor;
this.razaosocial_Fornecedor = razaosocial_Fornecedor;
}

/**
 * @return the cnpj_Fornecedor
 */
public String getCnpj_Fornecedor() {
    return cnpj_Fornecedor;
}

/**
 * @param cnpj_Fornecedor the cnpj_Fornecedor to set
 */
public void setCnpj_Fornecedor(String cnpj_Fornecedor) {
    this.cnpj_Fornecedor = cnpj_Fornecedor;
}

/**
 * @return the endereço_Fornecedor
 */
public String getEndereço_Fornecedor() {
    return endereço_Fornecedor;
}

/**
 * @param endereço_Fornecedor the endereço_Fornecedor to set
 */
public void setEndereço_Fornecedor(String endereço_Fornecedor) {
    this.endereço_Fornecedor = endereço_Fornecedor;
}

/**
 * @return the telefone_Fornecedor
 */
public String getTelefone_Fornecedor() {
    return telefone_Fornecedor;
}

/**
 * @param telefone_Fornecedor the telefone_Fornecedor to set
 */
public void setTelefone_Fornecedor(String telefone_Fornecedor) {
    this.telefone_Fornecedor = telefone_Fornecedor;
}

/**
 * @return the razaosocial_Fornecedor
 */
public String getRazaosocial_Fornecedor() {
    return razaosocial_Fornecedor;
}

/**
 * @param razaosocial_Fornecedor the razaosocial_Fornecedor to set
 */
public void setRazaosocial_Fornecedor(String razaosocial_Fornecedor) {
    this.razaosocial_Fornecedor = razaosocial_Fornecedor;
}

}
  • I didn’t understand what your difficulty to implement the foreign keys in your project?

  • The problem is at the time of insertion that is giving error... I wanted to know if the relationship is correct

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.