Created
May 8, 2019 08:59
-
-
Save andrisro/75c2fe952c2c90595b0e8230cd5ddf17 to your computer and use it in GitHub Desktop.
Java AWS Dynamo DB create Client
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Maven Import
<!-- AWS DynamoDB Import --> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-dynamodb</artifactId> <version>1.11.483</version> </dependency>