2016-11-29 5 views
2

Ich habe den folgenden CodeJava PreparedStatement Syntax Ausgabe

public void savePosition(String positionName) { 
    String sqlStatement = "INSERT INTO positions (name) VALUES (?)"; 
    try (
      Connection connection = getConnection(); 
      PreparedStatement preparedStatement = connection.prepareStatement(sqlStatement); 
      preparedStatement.setString(1, positionName); 
      preparedStatement.executeUpdate(); 
      ){ 

    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
} 

Und einen Syntaxfehler in der Nähe haben,; . in den Zeilen setString und executeUpdate.

Für diese Reihe

preparedStatement.setString(1, positionName); 

Ich habe

Syntaxfehler auf Token " " @ erwartet

Syntaxfehler auf Token",". erwartet

Syntaxfehler auf Token „;“, löschen Sie dieses Token

ich nicht sehen kann, was mit ihm nicht stimmt.

Antwort

5

Sie haben den gesamten Text Ihrer try-Anweisung in den Teil geschrieben, der nur zum Initialisieren verschließbarer Ressourcen gedacht ist. Sie möchten:

// This part is initializing resources 
try (Connection connection = getConnection(); 
    PreparedStatement preparedStatement = connection.prepareStatement(sql)) { 
    // This part is just statements 
    preparedStatement.setString(1, positionName); 
    preparedStatement.executeUpdate(); 
} catch (SQLException e) { 
    e.printStackTrace(); 
}