如何使用Java从dynamodb读取表?

Gir*_*ari 2 java amazon-web-services amazon-dynamodb alexa-skills-kit

我在 Amazon dynamodb 中创建了一个主键 Issue(String) 的表,其中存储了数据。我想从表中读取值。我正在使用以下代码..

@DynamoDBTable(tableName="Incident")
 AmazonDynamoDBClient dynamoDBClient = new AmazonDynamoDBClient();
 String tableName = "Incident";
 Table table = dynamoDBClient.getTable("Incident");
 Item getItem=dynamoDBClient.getItem();
Run Code Online (Sandbox Code Playgroud)

我在调用该方法时遇到错误getTable......它是一个预定义的方法吗?createTable()还是我们需要编写自己的方法......如果是这样怎么办?还有应该使用什么方法来读取表中的所有项目..?我使用此链接编写了一些代码... http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/JavaDocumentAPIItemCRUD.html#JavaDocumentAPIGetItem

我是Java新手请帮忙..

not*_*est 5

Scan API 可用于获取表中的所有项目。

扫描应该一直进行到 LastEvaluatedKey 不为 null,这对于获取所有项目非常重要。否则,如果表中有很多项目,您将无法获取所有项目,即 API 每次扫描将返回 1 MB 的数据。

Scan 操作默认执行最终一致性读取,最多可返回 1 MB(一页)数据。

扫描API

Map<String, AttributeValue> lastKeyEvaluated = null;
do {
    ScanRequest scanRequest = new ScanRequest()
        .withTableName("ProductCatalog")
        .withLimit(10)
        .withExclusiveStartKey(lastKeyEvaluated);

    ScanResult result = client.scan(scanRequest);
    for (Map<String, AttributeValue> item : result.getItems()){
        printItem(item);
    }
    lastKeyEvaluated = result.getLastEvaluatedKey();
} while (lastKeyEvaluated != null);
Run Code Online (Sandbox Code Playgroud)