Foreign Key

Boa noite a todos, bom, estou com um problema na hora de fazer um cadastro no meu código java. Ps: o problema está na foreign

erro: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect integer value: ‘’ for column ‘cod_funcionario’ at row 1

public void adicionarInfoPessoais(){
            String sql = "insert into informacoes (cod_func, nome, nascimento, sexo, rg, cpf) values (?,?,?,?,?,?)";
            try {
                pst = conexao.prepareStatement(sql);
                pst.setString(1, txtCadId.getText());
                pst.setString(2, txtCadNome.getText());
                pst.setString(3, txtCadNascimento.getText());
                pst.setString(4, cbmSexo.getSelectedItem().toString());
                pst.setString(5, txtCadRg.getText());
                pst.setString(6, txtCadCpf.getText());
              
                
                if (txtCadId.getText().isEmpty() || (txtCadNome.getText().isEmpty()) || (txtCadNascimento.getText().isEmpty()) || (txtCadRg.getText().isEmpty()) || (txtCadCpf.getText().isEmpty())) {
                    JOptionPane.showMessageDialog(null, "Preencha todos os campos obrigatórios");   
                }else{
                    int adicionado = pst.executeUpdate();
                    
                    if(adicionado > 0){
                        txtCadId.setText(null);
                        txtCadNome.setText(null);
                        txtCadNascimento.setText(null);
                        txtCadRg.setText(null);
                        txtCadCpf.setText(null);
                    }
                }
            } catch (Exception e) {
                System.out.println(e);
            }
            
        }
        
        public void adicionarEndereco(){
            String sql = "insert into endereco (cod_end, rua, numero, bairro, cidade, cep, cod_funcionario) values (?,?,?,?,?,?,?)";
            try {
                 pst = conexao.prepareStatement(sql);
                pst.setString(1, txtEndId.getText());
                pst.setString(2, txtEndRua.getText());
                pst.setString(3, txtEndNumero.getText());
                pst.setString(4, txtEndBairro.getText());
                pst.setString(5, txtEndCidade.getText());
                pst.setString(6, txtEndCep.getText());
                pst.setString(7, txtCadId.getText());
                
                if(txtEndId.getText().isEmpty() || (txtEndRua.getText().isEmpty()) || (txtEndNumero.getText().isEmpty()) || (txtEndBairro.getText().isEmpty()) || (txtEndCidade.getText().isEmpty()) || (txtEndCep.getText().isEmpty())){
                    JOptionPane.showMessageDialog(null, "Preencha todos os campos obrigatórios");
                } else {
                    int adicionado = pst.executeUpdate();
                    
                    if(adicionado > 0){
                        txtEndId.setText(null);
                        txtEndRua.setText(null);
                        txtEndNumero.setText(null);
                        txtEndBairro.setText(null);
                        txtEndCidade.setText(null);
                        txtEndCep.setText(null);
                       JOptionPane.showMessageDialog(null, "Cadastro realizado com sucesso");
                    }
                }
            } catch (Exception e) {
                System.out.println(e);
            }
        }
        
        public void adicionarContato(){
            String sql = "insert into contato (cod_cont, email, telefone, celular, cod_funcionario) values (?,?,?,?,?)";
            try {
                 pst = conexao.prepareStatement(sql);
                pst.setString(1, txtConId.getText());
                pst.setString(2, txtConEmail.getText());
                pst.setString(3, txtConTelefone.getText());
                pst.setString(4, txtConCelular.getText());
                pst.setString(5, txtCadId.getText());
                
                
                if(txtConId.getText().isEmpty() || (txtConTelefone.getText().isEmpty()) || (txtConCelular.getText().isEmpty()) || (txtConEmail.getText().isEmpty())){
                    JOptionPane.showMessageDialog(null, "Preencha todos os campos obrigatórios");
                } else {
                    int adicionado = pst.executeUpdate();
                    JOptionPane.showMessageDialog(null, "Funcionário adicionado com sucesso!");
                    if(adicionado > 0){
                        txtConId.setText(null);
                        txtConTelefone.setText(null);
                        txtConCelular.setText(null);
                        txtConEmail.setText(null);
                    }
                }
            } catch (Exception e) {
                System.out.println(e);
            }
        }

Você tá tentando colocar alguma letra? Caractere especial? O integer só aceita números.

Pontos, vírgulas, letras… tudo que NÃO for numerico não é aceito.

Troca o null por 0, ou deixa vazio

Eu somente insiro numero, mas ele não esta aceitando

Set seu pst para int e tente converter o valor para int

pst.setString(5, txtCadId.getText());
pst.setInt(5,Integer.parseInt(txtCadId.getText()));
1 curtida