0

Estoy creando un login en Java, que esta conectado a una base de datos en oracle SQL. Al probar mi codigo me arroja el NullPointerException.

    ConexionDB conexion = null;
public Login() {
    initComponents();      
    conexion = new ConexionDB();
      
}
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    
    try {
        String user = JTF_Usuario.getText();
        char[] pass = JPF_Contrasena.getPassword();
        String consulta = " SELECT USUARIO, CONTRASEÑA " +
                          " FROM EMPLEADO " +
                          " WHERE USUARIO LIKE ? " +
                          " AND CONTRASEÑA LIKE ? ";                                                
        PreparedStatement ps = (PreparedStatement)conexion.conecta.prepareStatement(consulta);                 
                ps.setString(1, user);               
                ps.setString(2, String.valueOf(pass));
                ResultSet rs = ps.executeQuery();
                if(rs.next()){
                    JOptionPane.showMessageDialog(rootPane, "Acceso Correcto.");                        
                    if(rs.getString(0).matches(JPF_Contrasena.getText())){
                        FPrincipal vP = new FPrincipal();
                        vP.set_id(Integer.parseInt(rs.getString(1)));
                        vP.setVisible(true);
                        this.dispose();
                    }else{
                        JOptionPane.showMessageDialog(null, "La contraseña es incorrecta");
                    }
                }else{
                    JOptionPane.showMessageDialog(null, "El usuario no existe dentro de la base de datos");
        }
    }catch (SQLException e) {
        JOptionPane.showMessageDialog(rootPane, "error en consulta");
    }
}         

El error me lo esta marcando en la linea:

PreparedStatement ps = (PreparedStatement)conexion.conecta.prepareStatement(consulta);

No logro entender el porque me arroja ese error.

  • Pues por lo mismo que todos los otros NullPointerException del mundo, porque o `conexion` o `conecta` son `null`, es decir, no están instanciados. Veo que creas el `new ConexionDB()`, así que imagino que el problema lo tienes en `conecta` que no está correctamente instanciado. Por cierto, no solo te indica la línea en el error, también te indica exactamente el método que has intentado llamar... los NPE siempre te dicen DONDE, CUANDO y COMO se ha producido, no tienes más que leer lo que te dice en el mensaje de error. – Benito-B Dec 08 '21 at 09:59
  • ¿Responde esto a tu pregunta? [¿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) – Benito-B Dec 08 '21 at 10:00

1 Answers1

1

El error java.lang.NullPointerException se produce cuando hay una variable null, no conozco que hace ConexionDB, pero Si te fijas bien, en la primera línea de lo que nos mandaste, tienes esto: ConexionDB conexion = null; prueba a cambiar su valor

Pd: cuando te marca un error no solo te dice donde esta, también te dice cual es el causante, intenta que te salga otra vez el error y fíjate donde diga el nombre de la clase junto con la línea del error, seguro hay más de de uno.

Juantro17
  • 155
  • 13