

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

# 创建增强型客户端和 `DynamoDbTable`
<a name="ddb-en-client-getting-started-dynamodbTable"></a>

## 创建增强型客户端
<a name="ddb-en-client-getting-started-dynamodbTable-eclient"></a>

该[DynamoDbEnhancedClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/DynamoDbEnhancedClient.html)类或其异步类是使用 DynamoDB 增强型客户端 API 的入口点。[DynamoDbEnhancedAsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/DynamoDbEnhancedAsyncClient.html)

增强型客户端需要标准 `[DynamoDbClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/dynamodb/DynamoDbClient.html)` 才能执行工作。API 提供了两种创建 `DynamoDbEnhancedClient` 实例的方法。第一个选项是使用从配置设置中选取的默认设置创建标准 `DynamoDbClient`，如以下代码段所示。

```
DynamoDbEnhancedClient enhancedClient = DynamoDbEnhancedClient.create();
```

如果要配置底层标准客户端，可以将其提供给增强型客户端的生成器方法，如以下代码段所示。

```
// Configure an instance of the standard DynamoDbClient.
DynamoDbClient standardClient = DynamoDbClient.builder()
    .region(Region.US_EAST_1)
    .credentialsProvider(ProfileCredentialsProvider.create())
    .build();

// Use the configured standard client with the enhanced client.
DynamoDbEnhancedClient enhancedClient = DynamoDbEnhancedClient.builder()
    .dynamoDbClient(standardClient)
    .build();
```

## 创建 `DynamoDbTable` 实例
<a name="ddb-en-client-getting-started-dynamodbTable-table"></a>

可以将 [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/DynamoDbTable.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/DynamoDbTable.html) 视为使用 `TableSchema` 提供的映射功能的 DynamoDB 表的客户端表示形式。该 `DynamoDbTable` 类提供了 CRUD 操作的方法，允许您与单个 DynamoDB 表进行交互。

`DynamoDbTable<T>` 是一个采用单一类型参数的通用类，无论是自定义类还是处理文档类型项目时的 `EnhancedDocument`。此参数类型在您使用的类和单个 DynamoDB 表之间建立关系。

使用 `DynamoDbEnhancedClient` 的 `table()` 工厂方法创建 `DynamoDbTable` 实例，如以下代码段所示。

```
static final DynamoDbTable<Customer> customerTable = 
        enhancedClient.table("Customer", TableSchema.fromBean(Customer.class));
```

`DynamoDbTable` 实例是单例类的候选实例，因为它们是不可变的，可以在整个应用程序中使用。

现在，您的代码具有可以使用 `Customer` 实例的 DynamoDB 表内存表示形式。实际的 DynamoDB 表可能存在，也可能不存在。如果名为 `Customer` 的表已经存在，则可以开始对其执行 CRUD 操作。如果该表不存在，请使用 `DynamoDbTable` 实例创建表，如下一部分所述。