

# Java 代码示例
<a name="CodeSamples.Java"></a>

**Topics**
+ [Java：设置 AWS 凭证](#CodeSamples.Java.Credentials)
+ [Java：设置 AWS 区域和端点](#CodeSamples.Java.RegionAndEndpoint)

本开发人员指南中包含 Java 代码片段以及可现成运行的程序。可以在以下章节中找到这些代码示例：
+ [使用 DynamoDB 中的项目和属性](WorkingWithItems.md)
+ [使用 DynamoDB 中的表和数据](WorkingWithTables.md)
+ [在 DynamoDB 中查询表](Query.md)
+ [在 DynamoDB 中扫描表](Scan.md)
+ [在 DynamoDB 中使用二级索引改进数据访问](SecondaryIndexes.md)
+ [Java 1.x：DynamoDBMapper](DynamoDBMapper.md)
+ [将更改数据捕获用于 DynamoDB Streams](Streams.md)

可以结合使用 Eclipse 和 [AWS Toolkit for Eclipse](https://aws.amazon.com/eclipse/) 来实现快速入门。除功能全面的 IDE 之外，还有带自动更新和预置模板的 适用于 Java 的 AWS SDK，用于构建 AWS 应用程序。

**运行 Java 代码示例（使用 Eclipse）**

1. 下载并安装 [Eclipse](http://www.eclipse.org) IDE。

1. 下载并安装 [AWS Toolkit for Eclipse](https://aws.amazon.com/eclipse/)。

1. 启动 Eclipse，然后在 **Eclipse** 菜单中，依次选择**文件**、**新建**和**其他**。

1. 在**选择向导**中，依次选择 **AWS**、**AWS Java 项目**和**下一步**。

1. 在**创建 AWS Java** 中，执行以下操作：

   1. 在**项目名称**中输入项目名称。

   1. 在**选择账户**中，从列表中选择凭证配置文件。

      如果这是您首次使用 [AWS Toolkit for Eclipse](https://aws.amazon.com/eclipse/)，请选择**配置 AWS 账户**以设置 AWS 凭证。

1. 选择**完成**创建项目。

1. 从 **Eclipse** 菜单中，依次选择**文件**、**新建**和**类**。

1. 在 **Java 类**的**名称**中输入类名（使用与要运行的代码示例相同的名称），然后选择**完成**以创建类。

1. 将文档页的代码示例复制到 Eclipse 编辑器。

1. 要运行代码，请在 Eclipse 菜单中选择**运行**。

SDK for Java提供线程安全的客户端来处理 DynamoDB。应用程序应创建一个客户端并在线程之间重复使用此客户端，您应将此作为一项最佳实践。

有关更多信息，请参见 [适用于 Java 的 AWS SDK](https://aws.amazon.com/sdk-for-java)。

**注意**  
本指南中的代码示例旨在用于最新版本的 适用于 Java 的 AWS SDK。  
如果使用 AWS Toolkit for Eclipse，则可以为 SDK for Java 配置自动更新。要在 Eclipse 中进行此操作，转到**首选项**，选择 **AWS Toolkit**、**适用于 Java 的 AWS SDK**、**自动下载新 SDK**。

## Java：设置 AWS 凭证
<a name="CodeSamples.Java.Credentials"></a>

SDK for Java 要求在运行时为应用程序提供 AWS 凭证。本指南中的代码示例假设您使用 AWS 凭证文件，如《适用于 Java 的 AWS SDK开发人员指南》中的[设置 AWS 凭证](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/set-up-creds.html)所述。

下面是一个名为 `~/.aws/credentials` 的 AWS 凭证文件示例，其中波浪号字符 (`~`) 表示主目录。

```
[default]
aws_access_key_id = AWS access key ID goes here
aws_secret_access_key = Secret key goes here
```

## Java：设置 AWS 区域和端点
<a name="CodeSamples.Java.RegionAndEndpoint"></a>

代码示例默认访问美国西部（俄勒冈）区域的 DynamoDB。可以修改 `AmazonDynamoDB` 属性来更改区域。

下面的代码示例实例化一个新的 `AmazonDynamoDB`。

```
import software.amazon.dynamodb.AmazonDynamoDBClientBuilder;
import com.amazonaws.regions.Regions;
...
// This client will default to US West (Oregon)
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard()
.withRegion(Regions.US_WEST_2)
.build();
```

可以使用 `withRegion` 方法对任何区域的 DynamoDB 运行代码。有关完整列表，请参阅《Amazon Web Services 一般参考》中的 [AWS 区域和终端节点](https://docs.aws.amazon.com/general/latest/gr/rande.html#ddb_region)**。

如果要使用 DynamoDB在计算机本地运行代码示例，请按如下方式设置端点。

### AWS SDK V1
<a name="CodeSamples.Java.RegionAndEndpoint.V1"></a>

```
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().withEndpointConfiguration(
new AwsClientBuilder.EndpointConfiguration("http://localhost:8000", "us-west-2"))
.build();
```

### AWS SDK V2
<a name="CodeSamples.Java.RegionAndEndpoint.V2"></a>

```
DynamoDbClient client = DynamoDbClient.builder()
    .endpointOverride(URI.create("http://localhost:8000"))
    // The region is meaningless for local DynamoDb but required for client builder validation
    .region(Region.US_EAST_1)
    .credentialsProvider(StaticCredentialsProvider.create(
    AwsBasicCredentials.create("dummy-key", "dummy-secret")))
    .build();
```