Magos de Java + SQL, os invoco (Parte 2) [SOLUCIONADO]

SOLUCIONADO, me decidí a "matar moscas a cañonazos" y cambié el método de PreparedStatement a String query, y recibí el mismo error... Pero casualmente reutilicé un trozo de código que mostraba por pantalla la consulta completa y caí en que faltaba un paréntesis en la dichosa consulta... Tiene narices xD

Gracias a los que hayáis echado la lectura, si algún moderador lo ve, el hilo puede cerrarse :)

Buenas tardes/noches, es la segunda vez ya que os requiero ayuda con este proyecto. La primera fue muy al principio del mismo y creo que esta es muy cerca del final, así que puede que sea la última vez que os moleste [+risas]

A priori el fallo parece "fantasma", es decir, no tengo ni la más absoluta idea de dónde puede estar porque las líneas de código son más simples que un chupete. Ahí va el código:

DbConnection();
try {
PreparedStatement st = conexion.prepareStatement("insert into cuentas values(null,current_timestamp,current_timestamp,"+idcamarero+","+mclicada);
st.execute();
st.close();
conexion.close();

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Lo que tiene que hacer este código es introducir en la tabla cuentas los valores nulo (para el autoincrementable id_cuenta), current_timestamp dos veces para captar automáticamente fecha y hora (esto lo he probado en la consola de phpmyadmin y funciona perfectamente), y después dos ids, dos números enteros que están en dos variables int del programa. He comprobado que tanto el idcamarero como mclicada llegan hasta ahí, pero la consola me "acusa" ( [carcajad] ) de tener incorrecta la sintaxis. Concretamente, los códigos de errores que devuelve son estos (no os asustéis):

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: 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 '' at line 1
   at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
   at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)
   at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:882)
   at __TPV.GestionBarV4.cerrarmesa(GestionBarV4.java:1039)
   at __TPV.GestionBarV4.access$2(GestionBarV4.java:1003)
   at __TPV.GestionBarV4$16.mouseClicked(GestionBarV4.java:506)
   at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)
   at java.awt.Component.processMouseEvent(Unknown Source)
   at javax.swing.JComponent.processMouseEvent(Unknown Source)
   at java.awt.Component.processEvent(Unknown Source)
   at java.awt.Container.processEvent(Unknown Source)
   at java.awt.Component.dispatchEventImpl(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Window.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$500(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue$4.run(Unknown Source)
   at java.awt.EventQueue$4.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)


También he comprobado que ambas variable lleguen en formato entero, pero nada... No tengo ni idea de dónde puede estar petando.

¡Gracias de antemano!
Buenas

Te falta el parentesis de cierre de "values"
Saludos

Edito: ¿que porque contesto si ya está solucionado? ...pues porque a estas horas miro y lo único que reconozco es el código Java. :D :D XD
1 respuesta