開始使用增強型文件 API - AWS SDK for Java 2.x

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

開始使用增強型文件 API

增強型文件 API 需要 DynamoDB 增強型用戶端 API 所需的相依性相同。它還需要一個DynamoDbEnhancedClient實例,如本主題開頭所示。

由於增強型文件 API 是隨 2.20.3 版發行的AWS SDK for Java 2.x,因此您需要該版本或更高版本。

創建一個DocumentTableSchemaDynamoDbTable

若要使用增強型文件 API 針對 DynamoDB 表格叫用命令,請將表格與用戶端 DynamoDbTable< EnhancedDocument > 資源物件相關聯。

增強型用戶端的table()方法會建立DynamoDbTable<EnhancedDocument>執行個體,並需要 DynamoDB 表格名稱和 a 的參數。DocumentTableSchema

的建置器DocumentTableSchema需要主索引鍵和一個或多個屬性轉換器提供者。該AttributeConverterProvider.defaultProvider()方法提供了默認類型的轉換器。即使您提供了自訂屬性轉換器提供者,也應該指定它。您可以將可選的輔助索引鍵添加到構建器中。

下列程式碼片段會顯示產生儲存無結EnhancedDocument構描述物件之 DynamoDB 表格的用戶端person表示法的程式碼。

DynamoDbTable<EnhancedDocument> documentDynamoDbTable = enhancedClient.table("person", TableSchema.documentSchemaBuilder() // Specify the primary key attributes. .addIndexPartitionKey(TableMetadata.primaryIndexName(),"id", AttributeValueType.S) .addIndexSortKey(TableMetadata.primaryIndexName(), "lastName", AttributeValueType.S) // Specify attribute converter providers. Minimally add the default one. .attributeConverterProviders(AttributeConverterProvider.defaultProvider()) .build()); // Call documentTable.createTable() if "person" does not exist in DynamoDB. // createTable() should be called only one time.

以下顯示本節中所使用之person物件的 JSON 表示法。

{ "id": 1, "firstName": "Richard", "lastName": "Roe", "age": 25, "addresses": { "home": { "zipCode": "00000", "city": "Any Town", "state": "FL", "street": "123 Any Street" }, "work": { "zipCode": "00001", "city": "Anywhere", "state": "FL", "street": "100 Main Street" } }, "hobbies": [ "Hobby 1", "Hobby 2" ], "phoneNumbers": [ { "type": "Home", "number": "555-0100" }, { "type": "Work", "number": "555-0119" } ] }