

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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 將適用於 Java 的 DAX 軟體開發套件的用戶端與 適用於 Java 的 AWS SDK 用作依存項目。如需詳細資訊，請參閱 [使用用戶端做為 Apache Maven 依存項目](DAX.client.java-sdk-v1.md#DAXClient.Maven)。  
或者，您必須在 classpath 中同時下載和包含 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);
    }

}
```