3
respuestas

[DUDA] NO ME GENERA Reporte

Siguiendo los pasos del profesor no me genera el reporte.

in thread "AWT-EventQueue-0" java.lang.RuntimeException: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= 1' at line 1 at com.alura.jdbc.dao.ProductoDAO.listar(ProductoDAO.java:189) at com.alura.jdbc.controller.ProductoController.listar(ProductoController.java:46) at com.alura.jdbc.view.ReporteFrame.lambda$0(ReporteFrame.java:54) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at com.alura.jdbc.view.ReporteFrame.cargaReporte(ReporteFrame.java:52) at com.alura.jdbc.view.ReporteFrame.(ReporteFrame.java:41) at com.alura.jdbc.view.ControlDeStockFrame.abrirReporte(ControlDeStockFrame.java:172) at com.alura.jdbc.view.ControlDeStockFrame$5.actionPerformed(ControlDeStockFrame.java:166) at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2314) at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:407) at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6620) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3398) at java.desktop/java.awt.Component.processEvent(Component.java:6385) at java.desktop/java.awt.Container.processEvent(Container.java:2266) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4995) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4827) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4827) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:98) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= 1' at line 1 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953) at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370) at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.execute(NewProxyPreparedStatement.java:67) at com.alura.jdbc.dao.ProductoDAO.listar(ProductoDAO.java:168) ... 42 more

![Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad](https://cdn1.gnarususercontent.com.br/6/560068/84a4757a-0ec4-461a-aec3-5017e09f691a.png)  
3 respuestas

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Hola Ana,

¿Ha podido resolver este problema? Parece que tienes un problema con la sintaxis de SQL en tu código. El error java.sql.SQLSyntaxErrorException generalmente indica que hay un problema con la consulta SQL que estás intentando ejecutar. En tu caso, el error parece estar cerca de '= 1' en tu consulta.

Una posible causa de este error podría ser que estás intentando asignar un valor a un campo en tu consulta SQL, pero la sintaxis no es correcta. Por ejemplo, si estás intentando hacer algo como esto:

String sql = "SELECT * FROM table WHERE campo = 1";

Deberías asegurarte de que 'campo' es realmente el nombre de una columna en tu tabla. Además, si 'campo' es una cadena, necesitarías poner 1 entre comillas:

String sql = "SELECT * FROM table WHERE campo = '1'";

Si 'campo' es una variable en tu código, necesitarías concatenar su valor en la cadena de consulta:

String campo = "nombreColumna";
String sql = "SELECT * FROM table WHERE " + campo + " = '1'";

Por supuesto, estos son solo ejemplos generales. Actualiza tu proyecto e inténtalo de nuevo.

Mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte.

¡Vamos juntos!

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

En la consulta no hay espacio entre producto y where:

var querySelect = "SELECT ID, NOMBRE, DESCRIPCION, CANTIDAD " +"FROM PRODUCTO" +" WHERE CATEGORIA_ID = ?";