Dynamo DB java语法

时间:2015-01-13 18:14:22

标签: java syntax amazon-dynamodb

以下dynamo db查询语法有什么区别: 我们曾经使用

QueryRequest queryRequest = new QueryRequest().withTableName(TABLE).withKeyConditions(keyConditions)....;

在最新文档中我看到:

table.query("Id", replyId,
            null, ///RangeKeyCondition - not used in this example
            "PostedBy = :val", //FilterExpression
我们应该使用哪一个? 这是一种新语法吗?区别在哪里?
感谢

2 个答案:

答案 0 :(得分:0)

不同的风味,相同的DynamoDB API。 The new Document API was introduced in Oct 2014

  

..新的Document API允许直接使用普通的旧Java数据   类型和较少的样板。实际上,Dynamo Document API可以   用于完全包含你可以用低级客户端做什么   (即AmazonDynamoDBClient)但编程模型更清晰   而且代码更少。

我个人仍然使用AmazonDynamoDBClient(您的第一个代码示例)

答案 1 :(得分:0)

        @Bean
            public AmazonDynamoDB amazonDynamoDB() {

                String accesskey = "";
                String secretkey = "";
                //
                // creating dynamo client
                BasicAWSCredentials credentials = new BasicAWSCredentials(accesskey, secretkey);
                AmazonDynamoDB dynamo = new AmazonDynamoDBClient(credentials);
                dynamo.setRegion(Region.getRegion(Regions.US_WEST_2));
                return dynamo;
            }

            @Bean
            public DynamoDBMapper dynamoDBMapper() {
                return new DynamoDBMapper(amazonDynamoDB());
            }

            @Bean
            public DynamoDBTemplate dynamoDBTemplate() {
                return new DynamoDBTemplate(amazonDynamoDB());
            }

    Use DynamoDbMapper for scanning the data : 
    DynamoDBQueryExpression<T> query = new DynamoDBQueryExpression<>();
query.addExpressionAttributeNamesEntry("xyz", "abc");
            List<T> results = dynamoDBMapper.query(T.class, query);

修改您的查询,并能够搜索数据。