dynamodb容器使用_使用DynamoDB映射器将DynamoDB项目映射到对象
dynamodb容器使用
以前,我们使用Java创建了DynamoDB表。
对于各种数据库,例如sql数据库或nosql,有一组工具可帮助访问,持久化和管理对象/类与基础数据库之间的数据。 例如,对于SQL数据库,我们使用JPA,对于Cassandra,我们使用MappingManager。
DynamoDBMapper是一个工具,使您可以访问各种表中的数据,对项目执行各种CRUD操作以及对表执行查询和扫描。
我们将尝试映射上一个示例中的“用户”,“登录名”,“主管”和“公司”表。
Users是一个简单的表,使用用户的电子邮件作为哈希键。
但是,在各种情况下,我们的DynamoDB表都使用哈希和范围键。 登录表可跟踪用户的登录尝试。 电子邮件是哈希键,时间戳是范围键。
package com.gkatzioura.dynamodb.mapper.entities;import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBHashKey; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBRangeKey; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTable;/*** Created by gkatzioura on 9/20/16.*/ @DynamoDBTable(tableName="Logins") public class Login {private String email;private Long timestamp;@DynamoDBHashKey(attributeName="email")public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}@DynamoDBRangeKey(attributeName="timestamp")public Long getTimestamp() {return timestamp;}public void setTimestamp(Long timestamp) {this.timestamp = timestamp;} } 另一种流行的情况是带有全局二级索引(GSI)的表。 例如,“主管”表用于按主管的姓名检索主管。 但是,我们也使用此表来检索特定公司的所有主管或在公司特定工厂工作的主管。
主管名称是我们的哈希键,公司名称是哈希键,工厂名称是全局二级索引的范围键。
最后但并非最不重要的一点是,我们可以使用本地二级索引。 公司表使用公司名称作为哈希键,使用子公司名称作为范围键。 由于我们要基于公司的CEO发出查询,因此将本地二级索引与基于CEO姓名的范围键一起使用。
package com.gkatzioura.dynamodb.mapper.entities;import com.amazonaws.services.dynamodbv2.datamodeling.*;/*** Created by gkatzioura on 9/21/16.*/ @DynamoDBTable(tableName="Companies") public class Company {private String name;private String subsidiary;private String ceo;@DynamoDBHashKey(attributeName="name")public String getName() {return name;}public void setName(String name) {this.name = name;}@DynamoDBRangeKey(attributeName = "subsidiary")public String getSubsidiary() {return subsidiary;}public void setSubsidiary(String subsidiary) {this.subsidiary = subsidiary;}@DynamoDBIndexRangeKey(localSecondaryIndexName = "CeoIndex",attributeName = "ceo")public String getCeo() {return ceo;}public void setCeo(String ceo) {this.ceo = ceo;} }您可以在github上找到源代码。
翻译自: https://www.javacodegeeks.com/2016/09/map-dynamodb-items-objects-using-dynamodb-mapper.html
dynamodb容器使用
总结
以上是生活随笔为你收集整理的dynamodb容器使用_使用DynamoDB映射器将DynamoDB项目映射到对象的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 赵州桥为什么世界闻名(被称为天下第一的赵
- 下一篇: kafka streams_Kafka