DynamoDB DeleteItem en Java (AWS SDK v2)
DeleteItem supprime un seul élément par sa clé primaire complète. Dans l'AWS SDK for Java 2.x tu construis un DeleteItemRequest et appelles deleteItem sur un DynamoDbClient ; avec ReturnValue.ALL_OLD la réponse t'indique si quelque chose a réellement été supprimé.
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());
}
}
}Explication
key— doit inclure chaque attribut de clé primaire : la clé de partition seule pour une clé simple, ou la clé de partition et la clé de tri pour une clé composite.- La suppression est idempotente — supprimer une clé qui n'existe pas reste un succès (pas d'erreur). Avec
returnValues(ReturnValue.ALL_OLD)l'élément supprimé revient dansresponse.attributes(); une carte vide signifie qu'il n'y avait rien. ReturnValuespourDeleteItemne prend en charge queNONE(par défaut) etALL_OLD— les optionsALL_NEW/UPDATED_*appartiennent àUpdateItem.- Suppression conditionnelle — ajoute un
conditionExpression(par ex.attribute_exists(Artist)pour échouer sur un élément manquant, ouAwards = :zeropour garder sur une valeur) ; une condition échouée lèveConditionalCheckFailedException. DeleteItemsupprime un élément par appel. Il n'y a pas d'API « tout supprimer » — pour vider une table, itère les clés avecScanet regroupe les suppressions en lot, ou supprime et recrée la table.
À faire visuellement
Tu protèges la suppression avec une condition ? Le DynamoDB Expression Builder assemble le ConditionExpression et les cartes de noms/valeurs pour toi.
Pour supprimer des éléments depuis une interface graphique — sélectionne des lignes, confirme, terminé, avec le code généré à un clic — télécharge DynoTable.
Exemples liés
- DynamoDB DeleteItem en Go — la même suppression avec l'AWS SDK for Go v2.
- DynamoDB PutItem en Java — le côté écriture de la même clé.
- Expressions de condition DynamoDB — protège les suppressions avec
attribute_existset des vérifications de valeur. - DynamoDB ConditionalCheckFailedException — ce que lève une suppression conditionnelle échouée, et quand c'est attendu.
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
Dernière vérification le 2026-07-13 par rapport à la documentation officielle AWS liée ci-dessus.