DynamoDB DeleteItem di Java (AWS SDK v2)
DeleteItem menghapus satu item berdasarkan primary key lengkap-nya. Di AWS SDK for Java 2.x Anda membangun DeleteItemRequest dan memanggil deleteItem pada DynamoDbClient; dengan ReturnValue.ALL_OLD, response memberi tahu Anda apakah ada sesuatu yang benar-benar terhapus.
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());
}
}
}Penjelasan
key— harus menyertakan setiap atribut primary key: partition key saja untuk key sederhana, atau partition dan sort key untuk key komposit.- Delete bersifat idempoten — menghapus key yang tidak ada tetap merupakan keberhasilan (tanpa error). Dengan
returnValues(ReturnValue.ALL_OLD), item yang terhapus kembali diresponse.attributes(); map kosong berarti tidak ada apa-apa di sana. ReturnValuesuntukDeleteItemhanya mendukungNONE(default) danALL_OLD— opsiALL_NEW/UPDATED_*milikUpdateItem.- Conditional delete — tambahkan
conditionExpression(mis.attribute_exists(Artist)untuk gagal pada item yang hilang, atauAwards = :zerountuk menjaga pada sebuah value); kondisi yang gagal melemparConditionalCheckFailedException. DeleteItemmenghapus satu item per panggilan. Tidak ada API "delete all" — untuk mengosongkan tabel, iterasi key denganScandan batch penghapusannya, atau drop dan buat ulang tabel.
Lakukan secara visual
Menjaga penghapusan dengan sebuah kondisi? DynamoDB Expression Builder menyusun ConditionExpression dan map name/value untuk Anda.
Untuk menghapus item dari GUI — pilih baris, konfirmasi, selesai, dengan kode yang dihasilkan hanya satu klik jauhnya — unduh DynoTable.
Contoh terkait
- DynamoDB DeleteItem di Go — penghapusan yang sama dengan AWS SDK for Go v2.
- DynamoDB PutItem di Java — sisi penulisan dari key yang sama.
- DynamoDB condition expressions — jaga penghapusan dengan
attribute_existsdan pemeriksaan value. - DynamoDB ConditionalCheckFailedException — apa yang dilempar conditional delete yang gagal, dan kapan itu diharapkan.
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
Terakhir diverifikasi 2026-07-13 terhadap dokumentasi resmi AWS yang ditautkan di atas.