Fala galera beleza, precisaria de uma força aqui, estou tentando cadastrar o aluno vinculado com o seu responsavel porém quando eu tento fazer isso aparece um erro :
ERRO: inserção ou atualização em tabela “aluno” viola restrição de chave estrangeira "alunos_fk"
Detalhe: Chave (id_responsavel)=(0) não está presente na tabela “responsavel”.
Tentei de tudo e mais um pouco estou desesperado, fico no aguardo de alguma ajuda!
[code]
public class AlunoDao {
/**
* Cadastra o Aluno
*
* @param nome
* @param cgm
* @param turma
* @return
*/
public int cadastroAluno(Aluno aluno) {
int retorno = 0;
Connection con = null;
try {
int oi = localizaPai(aluno);
con = new Conexao().criarConexao();
String sql = "INSERT INTO aluno(id_responsavel,nome_aluno, cgm) VALUES (?,?,?)";
PreparedStatement comando = con.prepareStatement(sql);
comando.setInt(1, localizaPai(aluno));
comando.setString(2, aluno.getNome());
comando.setString(3, aluno.getCgm());
comando.execute();
comando.close();
con.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println(e.getMessage());
}
return retorno;
}
public int localizaPai(Aluno aluno) {
int retorno = 0;
Connection con = null;
try {
con = new Conexao().criarConexao();
String sql = "SELECT nome, cpf, id_responsavel FROM responsavel WHERE cpf = '?' ";
PreparedStatement comando = con.prepareStatement(sql);
ResultSet rs = comando.executeQuery();
while (rs.next()) {
retorno = rs.getInt("id_responsavel");
}
con.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println(e.getMessage());
}
return retorno;
}
}[/code]