Skip to content

Inserting data

We can use an INSERT query with several parameters by putting more ? and passing the substitutions in with .setString(), .setInt(), or the appropriate set method for the datatype:

java
public static User create(String username, boolean verified) throws Exception {
  var query = "INSERT INTO users (username, verified) VALUES (?, ?) RETURNING *";

  try (var connection = DB.getConnection();
      var statement = connection.prepareStatement(query)) {

    statement.setString(1, username);
    statement.setBoolean(2, verified);

    try (var resultSet = statement.executeQuery();) {
        resultSet.next()
        var id = resultSet.getInt("id");
        return new User(id, username, verified);
    }
  }
}

INFO

Note the RETURNING * causes the statement to have a resultSet after execution. This lets us get the id and other fields of the newly created User from the database.