MySQL - Syntax error en sentencia java

 
Vista:
sin imagen de perfil

Syntax error en sentencia java

Publicado por Lucas (2 intervenciones) el 06/02/2017 20:09:35
Estoy teniendo un problema con un insert en una tabla
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public void enviarMensaje(String emisor, String receptor, String asunto, String mensaje) {
	try {
		String consulta="insert into mensajes ('emisor','receptor','asunto','mensaje')" + "values(?,?,?,?)";
		PreparedStatement pstm=cn.getConnection().prepareStatement(consulta);
		pstm.setString(1, emisor);
		pstm.setString(2, receptor);
		pstm.setString(3, asunto);
		pstm.setString(4, mensaje);
 
		pstm.execute();
		cn.getConnection().close();
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

El error es el siguiente
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
java.sql.SQLException: Syntax error or access violation message from server: "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 ''emisor','receptor','asunto','mensaje')values('lucasciffoni@navalmail.com','luca' at line 1"
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2001)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1168)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1279)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:2281)
	at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1419)
	at Bdd.BDDUser.enviarMensaje(BDDUser.java:88)
	at Plataforma.BandejaDeEntrada$2$1.actionPerformed(BandejaDeEntrada.java:86)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(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)


Por lo que veo no logra pasar bien el receptor, lo pasa como cortado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 796
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Syntax error en sentencia java

Publicado por xve (1151 intervenciones) el 07/02/2017 07:55:19
Hola Lucas, tienes un error de sintaxis en la consulta SQL... los nombre de los campos no van entre comillas... tendria que ser algo así:
1
String consulta="insert into mensajes (emisor,receptor,asunto,mensaje)" + "values(?,?,?,?)";

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Syntax error en sentencia java

Publicado por Lucas (2 intervenciones) el 07/02/2017 09:40:34
Justamente era eso. Muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar