-1

Tengo que hacer un proyecto en swing con una base de datos, al intentar eliminar un registro da null pointer pero no entiendo porque si los datos estan bien. El error dice unkwon column 'Alemania' in 'where clause'. Pero si esta Alemania en la base de datos. Os dejo la Query. Al depurar el error esta en el delete

public boolean hayPaisesMasD1(int num) {
        boolean hay = false;
        try {
            Statement orden = conn.createStatement();
            ResultSet res;
            res = orden.executeQuery("SELECT count(Nombre) As total FROM pais WHERE IdContinente ='" + num + "'");
            if (res.next()) {
                hay = res.getInt("total") > 1;
            }
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, e);
        }
        return hay;
    }

    public boolean borrarPais(String nombre, int idCon) {
        boolean flag = false;
        try {
            if (hayPaisesMasD1(idCon) == true) {
                Statement orden5 = conn.createStatement();
                orden5.execute("SET FOREIGN_KEY_CHECKS=0");
                orden5.close();
                Statement orden3 = conn.createStatement();
                orden3.executeUpdate("DELETE FROM pais where Nombre=" +nombre);
                orden3.close();
                Statement orden6 = conn.createStatement();
                orden6.execute("SET FOREIGN_KEY_CHECKS=1");
                orden6.close();
                flag = true;
            } else {
                Statement orden4 = conn.createStatement();
                orden4.executeUpdate("DELETE FROM pais where Nombre =" + nombre);
                orden4.close();
                flag = true;
                Statement orden3 = conn.createStatement();
                orden3.executeUpdate("DELETE FROM pais where Nombre =" + nombre);
                orden3.close();
                flag = true;
            }
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, e);
        }
        return flag;
    }
Carlos24345
  • 122
  • 12
  • Posible duplicado de [¿Cuál es la solución a todos los errores NullPointerException presentes, pasados y futuros?](https://es.stackoverflow.com/questions/42977/cu%c3%a1l-es-la-soluci%c3%b3n-a-todos-los-errores-nullpointerexception-presentes-pasados) – BetaM Nov 11 '19 at 18:14

1 Answers1

1

Siendo un string, la variable nombre debe estar rodeada de comillas simples

orden3.executeUpdate("DELETE FROM pais where Nombre='" +nombre + "'"
orden4.executeUpdate("DELETE FROM pais where Nombre ='" + nombre + "'");
Roger Torné
  • 7,317
  • 12
  • 17
  • 31