我正在使用Amazon的DynamoDB Java SDK,并想知道AmazonDynamoDBClient和DynamoDB类之间的区别。我似乎找不到任何关于它们的东西,因为似乎文件很少。我有任何理由应该使用其中一个吗?它们有什么主要的优点或缺点吗?
最佳答案
这是一个很好的问题。看来DynamoDB
是AmazonDynamoDBClient
的包装,提供了一个不同的接口(interface)。因此,这可能很明显,而不是您正在寻找的答案,但让我描述一下它们之间的一些区别。createTable
中的AmazonDynamoDBClient
方法返回一个CreateTableResult
对象,而DynamoDB
的createTable方法返回一个Table
对象。然后可以使用此Table
对象对该表进行CRUD。 Table
对象开始看起来像DynamoDB的通用ORM对象。因此,它实际上不是DynamoDB
类与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数据模型。
关于java - Java SDK中的AmazonDynamoDBClient和DynamoDB类之间的区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30773525/