use of com.amazonaws.services.dynamodbv2.model.QueryResult in project aws-doc-sdk-examples by awsdocs.
the class Query method main.
public static void main(String[] args) {
final String USAGE = "\n" + "Usage:\n" + " Query <table> <partitionkey> <partitionkeyvalue>\n\n" + "Where:\n" + " table - the table to put the item in.\n" + " partitionkey - partition key name of the table.\n" + " partitionkeyvalue - value of the partition key that should match.\n\n" + "Example:\n" + " Query GreetingsTable Language eng \n";
if (args.length < 3) {
System.out.println(USAGE);
System.exit(1);
}
String table_name = args[0];
String partition_key_name = args[1];
String partition_key_val = args[2];
String partition_alias = "#a";
System.out.format("Querying %s", table_name);
System.out.println("");
final AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient();
// set up an alias for the partition key name in case it's a reserved word
HashMap<String, String> attrNameAlias = new HashMap<String, String>();
attrNameAlias.put(partition_alias, partition_key_name);
// set up mapping of the partition name with the value
HashMap<String, AttributeValue> attrValues = new HashMap<String, AttributeValue>();
attrValues.put(":" + partition_key_name, new AttributeValue().withS(partition_key_val));
QueryRequest queryReq = new QueryRequest().withTableName(table_name).withKeyConditionExpression(partition_alias + " = :" + partition_key_name).withExpressionAttributeNames(attrNameAlias).withExpressionAttributeValues(attrValues);
try {
QueryResult response = ddb.query(queryReq);
System.out.println(response.getCount());
} catch (AmazonDynamoDBException e) {
System.err.println(e.getErrorMessage());
System.exit(1);
}
System.out.println("Done!");
}
use of com.amazonaws.services.dynamodbv2.model.QueryResult in project aws-doc-sdk-examples by awsdocs.
the class LowLevelQuery method findRepliesForAThread.
private static void findRepliesForAThread(String forumName, String threadSubject) {
String replyId = forumName + "#" + threadSubject;
Condition partitionKeyCondition = new Condition().withComparisonOperator(ComparisonOperator.EQ).withAttributeValueList(new AttributeValue().withS(replyId));
Map<String, Condition> keyConditions = new HashMap<String, Condition>();
keyConditions.put("Id", partitionKeyCondition);
QueryRequest queryRequest = new QueryRequest().withTableName(tableName).withKeyConditions(keyConditions);
QueryResult result = client.query(queryRequest);
for (Map<String, AttributeValue> item : result.getItems()) {
printItem(item);
}
}
use of com.amazonaws.services.dynamodbv2.model.QueryResult in project aws-doc-sdk-examples by awsdocs.
the class LowLevelQuery method findRepliesPostedWithinTimePeriod.
private static void findRepliesPostedWithinTimePeriod(String forumName, String threadSubject) {
long startDateMilli = (new Date()).getTime() - (15L * 24L * 60L * 60L * 1000L);
long endDateMilli = (new Date()).getTime() - (5L * 24L * 60L * 60L * 1000L);
java.text.SimpleDateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
String startDate = df.format(startDateMilli);
String endDate = df.format(endDateMilli);
Condition sortKeyCondition = new Condition().withComparisonOperator(ComparisonOperator.BETWEEN.toString()).withAttributeValueList(new AttributeValue().withS(startDate), new AttributeValue().withS(endDate));
Map<String, Condition> keyConditions = makeReplyKeyConditions(forumName, threadSubject);
keyConditions.put("ReplyDateTime", sortKeyCondition);
QueryRequest queryRequest = new QueryRequest().withTableName(tableName).withKeyConditions(keyConditions).withProjectionExpression("Message, ReplyDateTime, PostedBy");
QueryResult result = client.query(queryRequest);
for (Map<String, AttributeValue> item : result.getItems()) {
printItem(item);
}
}
Aggregations