我正在使用亚马逊的DynamoDB java SDK,并希望了解AmazonDynamoDBClient和DynamoDB类之间的区别。我似乎无法找到任何内容,因为文档似乎很少。有什么理由我应该使用其中一个吗?他们有什么主要的好处或缺点吗?
答案 0 :(得分:18)
这是一个很好的问题。看起来DynamoDB
是AmazonDynamoDBClient
的包装器,提供了不同的界面。所以这可能是显而易见的,而不是您正在寻找的答案,但让我描述它们之间的一些差异。
createTable
中的AmazonDynamoDBClient
方法返回CreateTableResult
个对象,而DynamoDB
的createTable方法返回Table
个对象。然后可以使用此Table
对象在该表上执行CRUD。 Table
对象开始看起来像DynamoDB的通用ORM对象。所以它不是DynamoDB
类vs AmazonDynamoDBClient
,更像是DynamoDB
& Table
课程与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数据模型的开销。