2016-07-27 7 views
1

Ich versuche eine Prepare-Anweisung auszuführen und einen Fehler in der MySQL-Syntax zu erhalten. Nicht sicher, was ist der Fehler?Fehler in SQL-Syntax für vorbereitete Anweisung?

Code:

PreparedStatement stmt = null; 
conn = ds.getConnection(); 
String query = "select distinct FName from PRL p1, RequestView p2 where p1.RequestId = p2.RequestId and p1.PackageId = p2.PackageId and p1.ProductId = ? and p1.ProductNumber = ? and p1.Version = ? order by p2.ArtName"; 
stmt = conn.prepareStatement(query); 
stmt.setString(1,id); 
stmt.setString(2,num); 
stmt.setString(3,ver); 
rs = stmt.executeQuery(query); 

Fehler:

Caused by: 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 '? and p1.ESTProductMatNumber =? and p1.Version =? order by p2.ArtworkName' at line 1 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936) 

Antwort

1

Es macht nichts. Ich habe es herausgefunden. rs = stmt.executeQuery (Abfrage); muss rs = stmt.executeQuery() sein;

+0

Sie haben die Abfrage mit der Abfrage vermutlich als einen der Werte ausgeführt. – tadman

+0

BTW, wenn Sie Java 7+ verwenden, verwenden Sie autocloseable-Funktion wie folgt: try (stmt = conn.prepareStatement (Abfrage)) { stmt.setString (1, id); stmt.setString (2, num); stmt.setString (3, ver); rs = stmt.executeQuery (Abfrage); ... } // Verwenden Sie Fang, wenn Sie damit umgehen wollen – lospejos

Verwandte Themen