Para crear una nueva tabla, necesitamos ingresar a la consola para dar un nombre a la nueva tabla y seleccionar una clave primaria para los datos que se almacenarán en ella. A continuación, haz clic en continuar y tendrás que elegir la capacidad de rendimiento de la tabla (leer unidades de capacidad y escribir unidades de capacidad). En el siguiente paso, puedes seleccionar un límite de solicitudes que, en caso de que pase, recibirás una notificación por correo electrónico. Por último, haz clic en "crear tabla".
Vamos a hacerlo, ahora que tienes toda la configuración previa y la tabla creada, estás listo para conectar DynamoDb a tu proyecto de Android. En primer lugar, debe importar una biblioteca en su clase java, como se muestra en el siguiente ejemplo:
import com.amazonaws.auth.CognitoCachingCredentialsProvider;
import com.amazonaws.mobileconnectors.dynamodbv2.document.Table;
import com.amazonaws.mobileconnectors.dynamodbv2.document.UpdateItemOperationConfig;
import com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.Document;
import com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.Primitive;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
import com.amazonaws.services.dynamodbv2.model.ReturnValue;
Ahora que tienes las importaciones, vas a agregar el código que se muestra a continuación:
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
getApplicationContext(), COGNITO_POOL_ID, COGNITO_REGION);
Lo que hace este código es que estamos creando credenciales de Amazon Cognito para los permisos de acceso; a continuación, crearemos un objeto DynamoDbClient utilizando las credenciales de Cognito creadas anteriormente como se muestra en el siguiente ejemplo:
AmazonDynamoDBClient dbClient = new AmazonDynamoDBClient(credentialsProvider);
Y finalmente vas a crear una referencia de tabla como esta:
Table dbTable = Table.loadTable(dbClient, TABLE_NAME);
Ahora que tienes la referencia de la tabla, puedes crear, leer, editar y eliminar datos de tu tabla:
Crear:
public void create(Document memo) {
if (!memo.containsKey("userId")) {
memo.put("userId", credentialsProvider.getCachedIdentityId());
}
if (!memo.containsKey("noteId")) {
memo.put("noteId", UUID.randomUUID().toString());
}
if (!memo.containsKey("creationDate")) {
memo.put("creationDate", System.currentTimeMillis());
}
dbTable.putItem(memo);
}
Actualizar:
public void update(Document memo) {
Document document = dbTable.updateItem(memo, new UpdateItemOperationConfig().withReturnValues(ReturnValue.ALL_NEW));
}
Borrar:
public void delete(Document memo) {
dbTable.deleteItem(
memo.get("userId").asPrimitive(),
memo.get("noteId").asPrimitive());
}
Leer:
public Document getById(String id) {
return dbTable.getItem(new Primitive(credentialsProvider.getCachedIdentityId()), new Primitive(noteId));
}
public List <Document> getAll() {
return dbTable.query(new Primitive(credentialsProvider.getCachedIdentityId())).getAllResults();
}
Y ahí lo tienes, conectaste con éxito tu proyecto de Android a Amazon DynamoDb, en ClickIT usamos tecnologías como DynamoDb y Amazon Web Services para dar mejor calidad a los proyectos de nuestros clientes y mantenerlos actualizados con las mejores tecnologías actuales.