本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
開始使用增強型文件 API
增強型文件 API 需要 DynamoDB 增強型用戶端 API 所需的相依性相同。它還需要一個DynamoDbEnhancedClient實例,如本主題開頭所示。
由於增強型文件 API 是隨 2.20.3 版發行的AWS SDK for Java 2.x,因此您需要該版本或更高版本。
創建一個DocumentTableSchema
和 DynamoDbTable
若要使用增強型文件 API 針對 DynamoDB 表格叫用命令,請將表格與用戶端 DynamoDbTable< EnhancedDocument >
增強型用戶端的table()
方法會建立DynamoDbTable<EnhancedDocument>
執行個體,並需要 DynamoDB 表格名稱和 a 的參數。DocumentTableSchema
的建置器DocumentTableSchemaAttributeConverterProvider.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" } ] }