开始使用增强型文档 API - Amazon SDK for Java 2.x
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

开始使用增强型文档 API

增强型文档 API 所需的依赖项与 DynamoDB 增强型客户端 API 所需的依赖项相同。它还需要一个 DynamoDbEnhancedClient 实例,如本主题开头所示。

由于增强型文档 API 是在Amazon SDK for Java 2.x 2.20.3 版本中发布的,因此您需要使用该版本或更高版本。

创建 DocumentTableSchemaDynamoDbTable

要使用增强型文档 API 对 DynamoDB 表调用命令,请将该表与客户端 DynamoDbTable<EnhancedDocument> 资源对象关联。

增强型客户端的 table() 方法会创建一个 DynamoDbTable<EnhancedDocument> 实例,并且需要用于 DynamoDB 表名称和 DocumentTableSchema 的参数。

DocumentTableSchema 的生成器需要一个主索引键和一个或多个属性转换器提供程序。AttributeConverterProvider.defaultProvider() 方法为默认类型提供转换器。即使您提供了自定义属性转换器提供程序,也应指定它。您可以向生成器添加可选的二级索引键。

以下代码段显示的代码将生成一个 DynamoDB person 表的客户端表示形式,该表将存储无架构 EnhancedDocument 对象。

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" } ] }