java PreparedStatement语法问题

java PreparedStatement语法问题,java,prepared-statement,Java,Prepared Statement,我有以下代码 public void savePosition(String positionName) { String sqlStatement = "INSERT INTO positions (name) VALUES (?)"; try ( Connection connection = getConnection(); PreparedStatement preparedStatement = con

我有以下代码

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);
我有

令牌“”上出现语法错误,应为@

标记“,”上的语法错误。期望

令牌“;”上出现语法错误,请删除此令牌


我看不出它有什么问题。

您已经将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();
}