2017-08-02 4 views
0

Ich portiere eine Tomcat7/Mysql-Anwendung zu AWS. Ich sehe, dass, wenn ich eine mehr Abfrage-Anweisung sende ich einen Fehler wie diese:AWS Mysql Multiquery-Syntaxfehler

com.mysql.jdbc.exceptions.jdbc4.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 .... 

ich es nur auf mehreren Abfragen detyected habe (zB Multiple verwandte Löschungen, wie „löscht aus xxx, löschen von xxx“) . Einzelabfragen scheinen korrekt zu funktionieren.

Ich verwende diesen Code für die Verbindung.

Class.forName("com.mysql.jdbc.Driver"); 
String jdbcUrl = "jdbc:mysql://" + hostname + ":" + port + "/" + dbName + "?user=" + userName + "&password=" + password + "&autoReconnect=true&allowMultiQueries=true"; 
Connection con = DriverManager.getConnection(jdbcUrl); 

Um die Abfrage ich diesen Code ausgeführt haben:

Statement st = conn.createStatement(); 
res = st.executeQuery(query); 
conn.commit(); 

ich bereits die allowMultiQueries=true gesetzt haben, aber es ist nicht richtig funktioniert. Was mache ich falsch?

Wird Multiquery unterstützt?

+1

Warum Gebrauch & für einige Parameter aber & für andere verwenden &? – jarmod

+0

Vom vorherigen Code geerbt. Das hat es gelöst. – jordi

+1

Stellen Sie sicher, dass Ihnen die exponentiell erhöhte Gefahr von SQL Injection-Sicherheitslücken bekannt ist, wenn Multiquery aktiviert ist. Es ist standardmäßig aus sehr zwingenden Gründen deaktiviert. –

Antwort

0

Wie von @jarmod gezeigt, war das Problem in der URL und im Separator. Ich sollte statt &

&autoReconnect=true&allowMultiQueries=true 
Verwandte Themen