Tenho uma tela que cuida do cadastro de docente, uma das informações a ser cadastrada é se esse docente em questão é coordenador, e se sim, em qual coordenadoria. Quando clica no botão “Salvar” o sistema chama um método que cuida de fazer o update na tabela coordenadoria passando o código do docente, o problema é que esse método não está sendo executado, ou está e mesmo assim não faz o update. Executei o SQL do update diretamente no banco e funciona, então já descarto a possibilidade de erro de sintaxe do SQL, o eclipse também não está acusando erro, nem no código e nem depois da execução. Não faço ideia do que pode ser.
Uso o eclipse e o postgreSQL.
Segue o código do botão “Salvar” e o código do método de update.
botão:
btnSalvar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
if(rdbtnDisponivel.isSelected()) {
docente.setStatus("Disponível");
}else if(rdbtnIndisponivel.isSelected()) {
docente.setStatus("Indisponível");
}else if(rdbtnSemidisponivel.isSelected()) {
docente.setStatus("SemiDisponível");
if((String)(cbCargo.getSelectedItem())=="Coordenador(a)") {
String selecao2 = (String) (cbCoordenador.getSelectedItem());
ResultSet res2 = inserir.executarBusca("select CoordCod from coordenadoria where CoordSigla = '"+selecao2+"'");
ResultSet res3 = inserir.executarBusca("select DocCod from docente where DocNome = '"+tfNome.getText()+"'");
while(res2.next()){
coord.setCoordCod(res2.getInt("CoordCod"));
}
while(res3.next()){
docente.setDocCod(res3.getInt("DocCod"));
}
inserir.coordenadorUpdate(docente,coord);//Faz o Update na tabela de coordenadoria, passando o código de docente.
cbCoordenador.removeItem(selecao2);//Remove do comboBox a coordenadoria que teve seu coordenador cadastrado.
}
}
inserir.inserir(docente);
} catch (Exception e) {
e.printStackTrace();
}
JOptionPane.showMessageDialog(null, "Cadastro realizado com sucesso.");
}
});
Update:
public void coordenadorUpdate(CLASSDocente docente, CLASSCoord coord) {
try {
Connection con = ConexaoUtil.getInstance().getConnection();
String sql = "update coordenadoria set DocCod = ? from docente where docente.DocCod = ? and coordenadoria.CoordCod = ?;";
PreparedStatement stm = con.prepareStatement(sql);
stm.setInt(1, docente.getDocCod());
stm.setInt(2, docente.getDocCod());
stm.setInt(3, coord.getCoordCod());
stm.executeUpdate();
stm.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}