2016-11-29 3 views
2

У меня есть следующий кодJava синтаксис PreparedStatement вопрос

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(); 
    } 
} 

И есть ошибка синтаксиса около,; , в строках setString и executeUpdate.

Для этой строки

preparedStatement.setString(1, positionName); 

У меня есть

Синтаксис ошибки на маркер " " @ ожидается

Синтаксис ошибку на маркер",". Ожидается

Синтаксис ошибку на маркер «;», удалите этот маркер

Я не могу видеть, что случилось с ним.

ответ

5

Вы поместили весь тело вашего заявления try в часть, предназначенную только для инициализации закрываемых ресурсов. Вы хотите:

// 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(); 
} 
Смежные вопросы