[JDBC, Java SE] Quando vou excluir uma linha do banco de dados

…Não é retornado nenhuma mensagem de erro, porém, simplesmente nada acontece, a linha não é excluída, nada é excluído.

CÓDIGO FONTE:

private void excluirActionPerformed(java.awt.event.ActionEvent evt) {                                        
    int o = Integer.parseInt(excluido.getText().trim());
    try {
        PreparedStatement pst = c.conn.prepareStatement(
                "delete from ESTADOS where ID ="+o+"");
        JOptionPane.showMessageDialog(null, "DEU CERTO");
    } catch (SQLException ex) {
        Logger.getLogger(Teste.class.getName()).log(Level.SEVERE, null, ex);
        JOptionPane.showMessageDialog(null, ex.getMessage());
    }
}

vc precisa EXECUTAR o prepared statement

String deleteSQL = "DELETE ESTADOS WHERE ID = ?"; /* hummm .... um misterioso ? */
PreparedStatement preparedStatement = c.conn.prepareStatement(deleteSQL);
preparedStatement.setInt(1, o); /* substituimos o primeiro ? pelo valor da variavel o */
int status = preparedStatement.executeUpdate(); /* TA DA !!*/

assim alem de vc se proteger de sql injection ( nao se concatena strings pra gerar sql ) vc executa o statement que vc criou.

status sera 0 se nao deletar nada ou um numero positivo referente a quantos registros foram apagados.

1 curtida