How to get the insert ID in JDBC?

后端 未结 12 1755
暖寄归人
暖寄归人 2020-11-21 06:09

I want to INSERT a record in a database (which is Microsoft SQL Server in my case) using JDBC in Java. At the same time, I want to obtain the insert ID. How can

12条回答
  •  無奈伤痛
    2020-11-21 06:25

    When encountering an 'Unsupported feature' error while using Statement.RETURN_GENERATED_KEYS, try this:

    String[] returnId = { "BATCHID" };
    String sql = "INSERT INTO BATCH (BATCHNAME) VALUES ('aaaaaaa')";
    PreparedStatement statement = connection.prepareStatement(sql, returnId);
    int affectedRows = statement.executeUpdate();
    
    if (affectedRows == 0) {
        throw new SQLException("Creating user failed, no rows affected.");
    }
    
    try (ResultSet rs = statement.getGeneratedKeys()) {
        if (rs.next()) {
            System.out.println(rs.getInt(1));
        }
        rs.close();
    }
    

    Where BATCHID is the auto generated id.

提交回复
热议问题