Galera,
Poderiam me dar um help:
Estou tentando fazer uma telinha de um sisteminha para cadastrar uma empresa. Esta empresa possui um endereço e um atributo chamado endereco_id que é a chave estrangeira da tabela Empresa fazendo referencia a tabela Endereço (id).
Não estou conseguindo cadastrar a empresa por causa da chave estrangeira. Segue o código da tela GUI para ver se podem me ajudar no main. Estou apanhando para instanciar esta chave estrangeira (endereco_id).
O Erro que está dando no eclipse quando rodo a tela é este:
Cannot add or update a child row: a foreign key constraint fails (
certidoes
.empresa
, CONSTRAINTfk_Empresa_Endereco1
FOREIGN KEY (Endereco_id
) REFERENCESendereco
(id
) ON DELETE NO ACTION ON UPDATE NO ACTION)
package br.com.certidoes.gui;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
//import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
//import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;
import br.com.certidoes.classes.Empresa;
import br.com.empresa.jdbc.ConexaoEmpJDBC;
import br.com.certidoes.util.ResultSetTable;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.awt.event.ActionEvent;
public class TelaEmpresa2 extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JTextField jtfNome;
private JTextField jtfCnpj;
private JTextField jtfEndereco_id;
// private JTextField txtCadastroEmpresa;
// private JLabel lblEndereco;
final JPanel plistar;
ResultSet rs;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
TelaEmpresa2 frame = new TelaEmpresa2();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public TelaEmpresa2() {
setTitle("Cadastro Empresa");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 800, 600);
contentPane = new JPanel();
contentPane.setBackground(new Color(210, 232, 232));
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JPanel panel = new JPanel();
panel.setBounds(50, 50, 450, 300);
contentPane.add(panel);
panel.setLayout(null);
JPanel pCadastra = new JPanel();
pCadastra.setBounds(10, 0, 764, 251);
panel.add(pCadastra);
pCadastra.setLayout(null);
JLabel lblNome = new JLabel("Nome");
lblNome.setBounds(45, 10, 51, 14);
pCadastra.add(lblNome);
jtfNome = new JTextField();
jtfNome.setBounds(43, 30, 469, 20);
pCadastra.add(jtfNome);
jtfNome.setColumns(50);
JLabel lblCnpj = new JLabel("Cnpj");
lblCnpj.setBounds(572, 10, 147, 14);
pCadastra.add(lblCnpj);
jtfCnpj = new JTextField();
jtfCnpj.setBounds(572, 30, 109, 20);
pCadastra.add(jtfCnpj);
jtfCnpj.setColumns(11);
jtfEndereco_id = new JTextField();
jtfEndereco_id.setBounds(572, 30, 109, 20);
pCadastra.add(jtfEndereco_id);
jtfEndereco_id.setColumns(11);
plistar = new JPanel();
plistar.setBounds(10, 262, 754, 279);
panel.add(plistar);
JButton btnCadastrar = new JButton("Cadastrar");
btnCadastrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Empresa empresa = new Empresa();
empresa.setNome(jtfNome.getText());
empresa.setCnpj(jtfCnpj.getText());
// empresa.setEndereco_id( Integer.parseInt(jtfEndereco_id.getText().substring(0, 8)));
// empresa.setEndereco_id( Integer.parseInt(jtfEndereco_id.getText().substring(0, 8)));
ConexaoEmpJDBC.obterInstancia().inserir(empresa);
// ResultSet rs = ConexaoEmpJDBC.obterInstancia().listar();
limparFlields();
listar();
}
});
btnCadastrar.setBounds(309, 217, 109, 23);
pCadastra.add(btnCadastrar);
listar();
}
private void limparFlields(){
jtfNome.setText("");
jtfCnpj.setText("");
jtfEndereco_id.setText("");
}
private void listar() {
plistar.removeAll();
rs = ConexaoEmpJDBC.obterInstancia().listar();
try {
plistar.setLayout(null);
ResultSetTable rst = new ResultSetTable(rs);
rst.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
rst.setPreferredScrollableViewportSize(new Dimension(240,140));
JScrollPane scrollPane = new JScrollPane(rst);
scrollPane.setSize(734, 274);
scrollPane.setLocation(10, 5);
plistar.add(scrollPane);
} catch (SQLException e) {
System.err.println(e.getMessage());
}
}
}