2016-11-28 2 views
-1

Ich arbeite an einem Projekt, das möchte ich eine Microsoft Access-Datenbank in ein Java-Programm integrieren. Ich habe erfolgreich eine Verbindung zur Datenbank hergestellt, aber meine SQL-Anweisungen aktualisieren die Datenbank nicht. Ich habe Variablen definiert, die Benutzereingaben lesen und diese Informationen als Bedingung für die WHERE-Anweisung verwenden. Ich habe Teile der ersten Anfrage herausgenommen und positive Ergebnisse erhalten, aber die ganze Aussage verweigert die Zusammenarbeit. Was muss ich bei der ersten Abfrage ändern, damit sie ausgeführt wird?UCAExc 3.0.7 unerwartete Token Fehler

result = statement.executeQuery("SELECT slipNumber FROM Slip WHERE (slipOpen = -1 & slipLength >= " + boatLengthdub + "& slipDepth >= " + boatDepthdub + ")"+ "LIMIT 1"); 

    statement.executeQuery("INSERT INTO Slip (slipOpen, boatID) VALUES (0," + boatIDdub + ")"); 

    System.out.println("Have a" + result); 

Antwort

1

Sie scheinen zu versuchen, die Zeichen-Zeichen zu verwenden (&), wo Sie AND das SQL-Schlüsselwort verwenden sollten. Sie sollten auch parametrisierte Abfragen, zum Beispiel unter Verwendung von PreparedStatement

String sql = 
     "SELECT slipNumber FROM Slip " + 
     "WHERE slipOpen = -1 AND slipLength >= ? AND slipDepth >= ? " + 
     "LIMIT 1"; 
PreparedStatement ps = conn.prepareStatement(sql); 
ps.setDouble(1, boatLengthdub); // assuming that they are Double values 
ps.setDouble(2, boatDepthdub); 
ResultSet rs = ps.executeQuery(); 
if (rs.next()) { 
    System.out.println(rs.getInt("slipNumber")); 
} else { 
    System.out.println("Not found."); 
} 
+0

Danke Gord, das hat alles aufgeklärt. – ace7

1

Ich stimme voll und ganz erfüllen Objekte. Und wenn Sie ein Update durchführen, würde ich vorschlagen, "statement.executeUpdate (query)" zu verwenden.