Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

[Duda] NullPointerException

Hola, despues de terminar la clase de Operación de listado en el ProductoDAO al querer levatar el programa me lanza un NullPointerException, he revisado cada una de las clase y no veo donde esta el error Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad este es ControlDeStockFrame Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad el ProductoController donde hace referencia a la linea 68

y esta la parte del ProductoDAO

no veo el error ayuda.

public List<Producto> listar() {
        List<Producto> resultado = new ArrayList<>();

        try {
            final PreparedStatement statement = con
                    .prepareStatement("SELECT ID, NOMBRE, DESCRIPCION, CANTIDAD FROM PRODUCTO");
    
            try (statement) {
                statement.execute();
    
                final ResultSet resultSet = statement.getResultSet();
    
                try (resultSet) {
                    while (resultSet.next()) {
                        resultado.add(new Producto(
                                resultSet.getInt("ID"),
                                resultSet.getString("NOMBRE"),
                                resultSet.getString("DESCRIPCION"),
                                resultSet.getInt("CANTIDAD")));
                    }
                }
            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }

        return resultado;
    }
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "com.alura.jdbc.dao.ProductoDAO.listar()" because "this.productoDAO" is null
    at com.alura.jdbc.controller.ProductoController.listar(ProductoController.java:68)
    at com.alura.jdbc.view.ControlDeStockFrame.cargarTabla(ControlDeStockFrame.java:232)
    at com.alura.jdbc.view.ControlDeStockFrame.configurarTablaDeContenido(ControlDeStockFrame.java:63)
    at com.alura.jdbc.view.ControlDeStockFrame.<init>(ControlDeStockFrame.java:49)
    at com.alura.jdbc.ControlDeStockMain.main(ControlDeStockMain.java:10)
1 respuesta
solución!

Hola Mario, espero que estés bien.

Obtienes la excepción porque this.productoDAO es nulo, en la clase ProductoController en la línea 68

Entonces debes asegurarte de inicializar this.productoDAO en el constructor de ProductoController:

public class ProductoController {
    private ProductoDAO productoDAO;

    public ProductoController() {
        this.productoDAO = new ProductoDAO();
    }

    // Resto del código
}

Al inicializar this.productoDAO en el constructor, te aseguras de que siempre haya una instancia válida de ProductoDAO disponible en ProductoController. Esto debería solucionar el NullPointerException.

Espero haber ayudado y buenos estudios. Si tienes alguna otra pregunta, no dudes en preguntar.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios