I'm having a bit of trouble implementing foreign keys in my project.
DAOProduto.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);
}
}
}
Product.java
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;
}
}
Provider.java
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;
}
}