java PreparedStatement语法问题

时间:2016-11-29 11:24:28

标签: java prepared-statement

我有以下代码

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

我有

  

令牌上的语法错误"。",@ expected

     

令牌上的语法错误"," ,.预期

     

令牌上的语法错误";",删除此令牌

我看不出它有什么问题。

1 个答案:

答案 0 :(得分: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();
}