DynamoDB DeleteItem in Java (AWS SDK v2)
DeleteItem rimuove un singolo Item tramite la sua chiave primaria completa. In AWS SDK for Java 2.x costruisci un DeleteItemRequest e chiami deleteItem su un DynamoDbClient; con ReturnValue.ALL_OLD la risposta ti dice se qualcosa è stato effettivamente eliminato.
Code
import java.util.HashMap;
import java.util.Map;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
import software.amazon.awssdk.services.dynamodb.model.DeleteItemRequest;
import software.amazon.awssdk.services.dynamodb.model.DeleteItemResponse;
import software.amazon.awssdk.services.dynamodb.model.DynamoDbException;
import software.amazon.awssdk.services.dynamodb.model.ReturnValue;
public class DeleteItemExample {
public static void main(String[] args) {
try (DynamoDbClient ddb = DynamoDbClient.builder()
.region(Region.US_EAST_1)
.build()) {
Map<String, AttributeValue> key = new HashMap<>();
key.put("Artist", AttributeValue.builder().s("Arturo Sandoval").build());
key.put("SongTitle", AttributeValue.builder().s("Cubano Chant").build());
DeleteItemRequest request = DeleteItemRequest.builder()
.tableName("Music")
.key(key)
.returnValues(ReturnValue.ALL_OLD)
.build();
DeleteItemResponse response = ddb.deleteItem(request);
if (response.attributes().isEmpty()) {
System.out.println("No item with that key existed");
} else {
System.out.println("Deleted: " + response.attributes());
}
} catch (DynamoDbException e) {
System.err.println(e.getMessage());
}
}
}Spiegazione
key— deve includere ogni attributo della chiave primaria: la sola chiave di partizione per una chiave semplice, o chiave di partizione e chiave di ordinamento per una chiave composita.- Il delete è idempotente — eliminare una chiave che non esiste è comunque un successo (nessun errore). Con
returnValues(ReturnValue.ALL_OLD)l'Item eliminato torna inresponse.attributes(); una mappa vuota significa che non c'era nulla. ReturnValuesperDeleteItemsupporta soloNONE(predefinito) eALL_OLD— le opzioniALL_NEW/UPDATED_*appartengono aUpdateItem.- Eliminazione condizionale — aggiungi una
conditionExpression(ad es.attribute_exists(Artist)per fallire su un Item mancante, oAwards = :zeroper una guardia su un valore); una condizione fallita sollevaConditionalCheckFailedException. DeleteItemrimuove un Item per chiamata. Non esiste un'API "delete all" — per svuotare una tabella, itera le chiavi conScane raggruppa le eliminazioni in batch, oppure elimina e ricrea la tabella.
Fallo visivamente
Vuoi proteggere l'eliminazione con una condizione? Il DynamoDB Expression Builder assembla la ConditionExpression e le mappe di nomi/valori per te.
Per eliminare Item da una GUI — seleziona le righe, conferma, fatto, con il codice generato a un clic di distanza — scarica DynoTable.
Esempi correlati
- DynamoDB DeleteItem in Go — la stessa eliminazione con AWS SDK for Go v2.
- DynamoDB PutItem in Java — il lato scrittura della stessa chiave.
- Espressioni di condizione DynamoDB — proteggi le eliminazioni con
attribute_existse controlli sui valori. - DynamoDB ConditionalCheckFailedException — cosa solleva un'eliminazione condizionale fallita, e quando è prevista.
References
- DeleteItem — Amazon DynamoDB API Reference
- Use DeleteItem with an AWS SDK or CLI — Amazon DynamoDB Developer Guide
- DynamoDbClient — AWS SDK for Java 2.x API Reference
- DeleteItemRequest — AWS SDK for Java 2.x API Reference
- Condition expressions — Amazon DynamoDB Developer Guide
Ultima verifica 2026-07-13 rispetto alla documentazione ufficiale AWS collegata sopra.