我正在使用Amazon的DynamoDB java SDK,想知道AmazonDynamoDBClient和DynamoDB类之间的区别。我似乎找不到关于他们的任何东西,因为似乎很少有文档。有什么理由我应该使用其中一个或另一个吗?它们有什么主要的优点或缺点吗?
这是个好问题。看起来DynamoDB
是AmazonDynamoDBClient
的包装器,提供了不同的接口。这可能是显而易见的,也不是你想要的答案,但让我描述一下它们之间的一些区别。
AmazonDynamoDBClient
中的createTable
方法返回一个CreateTableResult
对象,而DynamoDB
的createTable方法返回一个Table
对象。然后可以使用这个Table
对象对该表执行CRUD。Table
对象开始看起来像DynamoDB的通用ORM对象。所以不是真正的DynamoDB
类和AmazonDynamoDBClient
类,更像是DynamoDB
类Table
类vs AmazonDynamoDBClient
.
AmazonDynamoDBClient
明显比DynamoDB
更老。DynamoDB
是非常新的,在1.9.x中出现。但是这里还有一个类值得一提,DynamoDBMapper
。DynamoDBMapper
允许更多类似ORM的操作。允许开发人员注释他们的JavaBean数据模型,以便他们可以轻松地根据DynamoDB表进行CRUD。您可以直接使用对象,DynamoDBMapper
将在DynamoDB数据库上执行CRUD工作。DynamoDBMapper
比DynamoDB
类更老。我认为可能有些开发人员不想使用DynamoDBMapper
(可能不是OO或注释的粉丝?),需要另一种范式,但我只是假设。这样就创建了DynamoDB
和Table
类。使用Table
类,您可以比AmazonDynamoDBClient
更容易地与表交互,但没有DynamoDBMapper
需要的创建JavaBean数据模型的开销。