public Integer Salvar (Bolao dados) throws SQLException{
int ID = -1;
String SQL;
SQL = "INSERT INTO BOLAO (NOME, TELEFONE, OBSERVACAO, JOGO) VALUES (?,?,?,?) returning ID";
PreparedStatement insereSt = null;
Connection cnx = FabricaConexao.getInstance().getConexao();
try {
cnx.setAutoCommit(false);
insereSt =(FirebirdPreparedStatement) cnx.prepareStatement(SQL);
insereSt.setString(1, dados.getNome());
insereSt.setString(2, dados.getTelefone());
insereSt.setString(3, dados.getObservacao());
insereSt.setString(4, dados.getJogo().toString());
ResultSet rs = insereSt.executeQuery();
//insereSt.executeUpdate();
cnx.commit();
rs.next();
ID = rs.getInt("ID");
rs.close();
} catch (SQLException e) {
cnx.rollback();
cnx.setAutoCommit(true);
JOptionPane.showMessageDialog(null, "Erro ao incluir: " + e.getMessage() + "\n");
} finally {
try {
cnx.setAutoCommit(true);
insereSt.close();
return ID;
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Erro ao encerrar conexão: " + e.getMessage());
}
}
return ID;
}
Estou querendo fazer um INSERT e já retorna o ID que o banco gerou. Só que me é apresentada uma msg de erro, ResultSet is close.
Achei que ele estaria fechado pois nenhum valor estaria sendo retornado, então qnd realizei o insert direto no banco a ID me foi retornada.