

# TryDax.java
<a name="DAX.client.run-application-java.TryDax"></a>

`TryDax.java` 文件包含 `main` 方法。如果在没有命令行参数的情况下运行程序，将创建一个 Amazon DynamoDB 客户端，并将该客户端用于所有 API 操作。如果在命令行中指定一个 DynamoDB Accelerator (DAX) 集群端点，程序还将创建一个 DAX 客户端，并用于 `GetItem`、`Query` 和 `Scan` 操作。

可以通过多种方式修改程序：
+ 使用 DAX 客户端而不是 DynamoDB 客户端。有关更多信息，请参阅 [Java 和 DAX](DAX.client.run-application-java.md)。
+ 为测试表选择其他名称。
+ 通过更改 `helper.writeData` 参数修改写入的项目数。第二个参数是分区键数，第三个参数是排序键数。默认情况下，程序使用 1–10 作为分区键值，使用 1–10 作为排序键值，总共向表写入 100 个项目。有关更多信息，请参阅 [TryDaxHelper.java](DAX.client.run-application-java.TryDaxHelper.md)。
+ 修改 `GetItem`、`Query` 和 `Scan` 测试的数量及其参数。
+ 注释掉包含 `helper.createTable` 和 `helper.deleteTable` 的行（如果不希望每次运行程序时都创建和删除表）。

**注意**  
要运行此程序，您可以设置 Maven 将 DAX SDK for Java 客户端和 适用于 Java 的 AWS SDK 作为依赖项。有关更多信息，请参阅 [使用客户端作为 Apache Maven 依赖项](DAX.client.java-sdk-v1.md#DAXClient.Maven)。  
或者可以下载 DAX Java 客户端和 适用于 Java 的 AWS SDK 并加入类路径。有关设置 [Java 和 DAX](DAX.client.run-application-java.md) 变量的示例，请参阅 `CLASSPATH`。

```
public class TryDax {

    public static void main(String[] args) throws Exception {

        TryDaxHelper helper = new TryDaxHelper();
        TryDaxTests tests = new TryDaxTests();

        DynamoDB ddbClient = helper.getDynamoDBClient();
        DynamoDB daxClient = null;
        if (args.length >= 1) {
            daxClient = helper.getDaxClient(args[0]);
        }

        String tableName = "TryDaxTable";

        System.out.println("Creating table...");
        helper.createTable(tableName, ddbClient);
        System.out.println("Populating table...");
        helper.writeData(tableName, ddbClient, 10, 10);

        DynamoDB testClient = null;
        if (daxClient != null) {
            testClient = daxClient;
        } else {
            testClient = ddbClient;
        }

        System.out.println("Running GetItem, Scan, and Query tests...");
        System.out.println("First iteration of each test will result in cache misses");
        System.out.println("Next iterations are cache hits\n");

        // GetItem
        tests.getItemTest(tableName, testClient, 1, 10, 5);

        // Query
        tests.queryTest(tableName, testClient, 5, 2, 9, 5);

        // Scan
        tests.scanTest(tableName, testClient, 5);

        helper.deleteTable(tableName, ddbClient);
    }

}
```