Get Multiple Items in DynamoDB Using Java (Guide w/ Code Examples)

Rafal Wilinski

Provided by Rafal Wilinski

To retrieve multiple items from a DynamoDB table in a single operation in Java, you can use the batchGetItem method of the AmazonDynamoDB client. In this example, YourTableName is the name of the table which you want to retrieve the items from.

The batchGetItem method accepts a BatchGetItemRequest object, which takes a map of the table name to KeysAndAttributes objects. Each KeysAndAttributes object represents the keys and attributes of the items that you want to retrieve.

import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder; import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes; import com.amazonaws.services.dynamodbv2.model.batchGetItemRequest; import com.amazonaws.services.dynamodbv2.model.Attributevalue; import com.amazonaws.services.dynamodbv2.model.batchGetItemResult; public class DynamoDBBatchGetExample { public static void main(String[] args) { AmazonDynamoDB client = AmazonDynamoDBClientBuilder.defaultClient(); Map<String, KeysAndAttributes> requestItems = new HashMap<String, KeysAndAttributes>(); List<Map<String, AttributeValue>> keys = new ArrayList<Map<String, AttributeValue>>(); keys.add(new HashMap<String, AttributeValue>() { { put("id", new AttributeValue().withN("1")); } }); keys.add(new HashMap<String, AttributeValue>() { { put("id", new AttributeValue().withN("2")); } }); requestItems.put("YourTableName", new KeysAndAttributes().withKeys(keys)); BatchGetItemRequest request = new BatchGetItemRequest() .withRequestItems(requestItems); BatchGetItemResult result = client.batchGetItem(request); System.out.println("Items retrieved successfully!"); System.out.println(result.get()); } }

Tired of AWS Console? Try Dynobase.

Start your 7-day free trial today

Product Features

Member Portal
© 2024 Dynobase
Using DynamoDB Console frequently?
Try Dynobase to accelerate your DynamoDB workflow. Start your 7-day free trial today.