Al compilar mi app de consulta de base de datos me sale este error:
Exception in thread "main" java.lang.NullPointerException at co.edu.utp.misiontic2022.c2.model.dao.PagadoPorProyectoDao.listarPagadoPorProyecto(PagadoPorProyectoDao.java:33) at co.edu.utp.misiontic2022.c2.controller.ReportesController.listarPagadoPorProyecto(ReportesController.java:30) at co.edu.utp.misiontic2022.c2.view.ReportesView.totalPagadoPorProyectosSuperioresALimite(ReportesView.java:51) at co.edu.utp.misiontic2022.c2.App.main(App.java:16)
Este es mi dao dice que en la linea 33 hay error:
public List<PagadoPorProyectoVo> listarPagadoPorProyecto(Double limiteInteferior) throws SQLException {
List<PagadoPorProyectoVo> respuesta = new ArrayList<>();
var conn = JDBCUtilities.getConnection();
PreparedStatement stmt = null;
ResultSet rset = null;
try {
var query = "SELECT p.ID_Proyecto, SUM(c.Cantidad*mc.Precio_Unidad) AS VALOR"
+ " FROM Proyecto p"
+ " INNER JOIN Compra c ON c.ID_Proyecto = p.ID_Proyecto "
+ " INNER JOIN MaterialConstruccion mc ON mc.ID_MaterialConstruccion = c.ID_MaterialConstruccion"
+ " WHERE c.Pagado = (?)"
+ " GROUP BY p.ID_Proyecto"
+ " HAVING SUM(c.Cantidad*mc.Precio_Unidad) > 50000"
+ " ORDER BY VALOR DESC;";
stmt = conn.prepareStatement(query);
33--> stmt.setDouble(1, limiteInferior);
rset = stmt.executeQuery();
while (rset.next()) {
var vo = new PagadoPorProyectoVo();
vo.setID_Proyecto(rset.getString("ID_Proyecto"));
vo.setVALOR(rset.getInt("VALOR"));
respuesta.add(vo);
}
} finally {
if(rset != null) {
rset.close();
}
if(stmt != null) {
stmt.close();
}
if(conn != null) {
conn.close();
}
}
return respuesta;
Este es el metodo del reportes controller al que hace referencia el error:
public List<PagadoPorProyectoVo> listarPagadoPorProyecto(Double limiteInferior) throws SQLException {
return pagadoPorProyectoDao.listarPagadoPorProyecto(limiteInferior);
}
Este es el metodo del view donde tambien hay una error: linea 51
public void totalPagadoPorProyectosSuperioresALimite(Double limiteInferior) {
try {
System.out.println(repitaCaracter('=', 1) + " TOTAL PAGADO POR PROYECTO "
+ repitaCaracter('=', 1));
System.out.println(String.format("%3s %15s", "ID", "VALOR "));
System.out.println(repitaCaracter('-', 29));
51-->var lista = reportesController.listarPagadoPorProyecto(limiteInferior);
for (PagadoPorProyectoVo pagado : lista) {
System.out.printf("%3s %15s %n", pagado.getID_Proyecto(), pagado.getVALOR());
}
} catch (SQLException e) {
System.err.println("Error: " + e.getMessage());
e.printStackTrace();
}
Aparentemente no hay error alguno de sintaxis pero la pregunta es como debo solucionar el error del hilo del main? Auxilio!