Skip to content

Instantly share code, notes, and snippets.

@andrisro
Created May 8, 2019 08:59
Show Gist options
  • Save andrisro/75c2fe952c2c90595b0e8230cd5ddf17 to your computer and use it in GitHub Desktop.
Save andrisro/75c2fe952c2c90595b0e8230cd5ddf17 to your computer and use it in GitHub Desktop.
Java AWS Dynamo DB create Client
import com.amazonaws.regions.Regions;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperConfig;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperConfig.TableNameOverride;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBQueryExpression;
import com.amazonaws.services.dynamodbv2.model.AttributeValue;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.HashMap;
import java.util.Map;
class AWSDynamoDBHandler {
private static Logger LOG = LogManager.getLogger(AWSDynamoDBHandler.class.getName());
private AmazonDynamoDB client;
private String tableName;
public AWSDynamoDBHandler(EnvironmentProvider tableNameProvider) {
this.tableName = tableNameProvider.getValue();
createClient();
}
/**
* Get an active client to the AWS dynamo DB in EU-Central-West
*
* @return Active Client
*/
private void createClient() {
LOG.debug("get amazon dynamo db client");
//create client if not initialized
if (client == null) {
LOG.debug("dyanmo db client is not created - build it now");
// This client will connect to EU CENTRAL 1 (Frankfurt)
client = AmazonDynamoDBClientBuilder.standard()
.withRegion(Regions.EU_CENTRAL_1)
.build();
LOG.debug("client created");
}
}
DynamoDBMapper getDynamoDBMapper() {
return new DynamoDBMapper(client, DynamoDBMapperConfig.builder().withTableNameOverride(new TableNameOverride(tableName)).build());
}
DynamoDBQueryExpression buildQueryWithPrimaryKey(String primaryKeyName, String primaryKeyValue) {
Map<String, AttributeValue> valueMap = new HashMap<>();
valueMap.put(":v1", new AttributeValue().withS(primaryKeyValue));
//query
DynamoDBQueryExpression dynamoDBQueryExpression = new DynamoDBQueryExpression().withKeyConditionExpression(primaryKeyName+" = :v1").withExpressionAttributeValues(valueMap);
return dynamoDBQueryExpression;
}
void saveObject(Object object) {
getDynamoDBMapper().save(object);
}
}
@andrisro
Copy link
Author

andrisro commented May 8, 2019

Maven Import

<!-- AWS DynamoDB Import --> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-dynamodb</artifactId> <version>1.11.483</version> </dependency>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment