Example usage for com.amazonaws.services.dynamodbv2 AmazonDynamoDBClient updateItem

List of usage examples for com.amazonaws.services.dynamodbv2 AmazonDynamoDBClient updateItem

Introduction

In this page you can find the example usage for com.amazonaws.services.dynamodbv2 AmazonDynamoDBClient updateItem.

Prototype

@Override
    public UpdateItemResult updateItem(String tableName, java.util.Map<String, AttributeValue> key,
            java.util.Map<String, AttributeValueUpdate> attributeUpdates) 

Source Link

Usage

From source file:aws.example.dynamodb.UpdateItem.java

License:Open Source License

public static void main(String[] args) {
    final String USAGE = "\n" + "Usage:\n" + "    UpdateItem <table> <name> <greeting>\n\n" + "Where:\n"
            + "    table    - the table to put the item in.\n"
            + "    name     - a name to update in the table. The name must exist,\n"
            + "               or an error will result.\n"
            + "Additional fields can be specified by appending them to the end of the\n" + "input.\n\n"
            + "Examples:\n" + "    UpdateItem SiteColors text default=000000 bold=b22222\n"
            + "    UpdateItem SiteColors background default=eeeeee code=d3d3d3\n\n";

    if (args.length < 3) {
        System.out.println(USAGE);
        System.exit(1);/*from  ww  w .j a  v a 2 s.  c  o m*/
    }

    String table_name = args[0];
    String name = args[1];
    ArrayList<String[]> extra_fields = new ArrayList<String[]>();

    // any additional args (fields to add or update)?
    for (int x = 2; x < args.length; x++) {
        String[] fields = args[x].split("=", 2);
        if (fields.length == 2) {
            extra_fields.add(fields);
        } else {
            System.out.format("Invalid argument: %s\n", args[x]);
            System.out.println(USAGE);
            System.exit(1);
        }
    }

    System.out.format("Updating \"%s\" in %s\n", name, table_name);
    if (extra_fields.size() > 0) {
        System.out.println("Additional fields:");
        for (String[] field : extra_fields) {
            System.out.format("  %s: %s\n", field[0], field[1]);
        }
    }

    HashMap<String, AttributeValue> item_key = new HashMap<String, AttributeValue>();

    item_key.put("Name", new AttributeValue(name));

    HashMap<String, AttributeValueUpdate> updated_values = new HashMap<String, AttributeValueUpdate>();

    for (String[] field : extra_fields) {
        updated_values.put(field[0],
                new AttributeValueUpdate(new AttributeValue(field[1]), AttributeAction.PUT));
    }

    final AmazonDynamoDBClient ddb = new AmazonDynamoDBClient();

    try {
        ddb.updateItem(table_name, item_key, updated_values);
    } catch (ResourceNotFoundException e) {
        System.err.println(e.getMessage());
        System.exit(1);
    } catch (AmazonServiceException e) {
        System.err.println(e.getMessage());
        System.exit(1);
    }
    System.out.println("Done!");
}