Java SDK 中的 AmazonDynamoDBClient 和 DynamoDB 类之间的区别?

我正在使用亚马逊的 DynamoDB java SDK,想知道 AmazonDynamoDBClient 和 DynamoDB 类.我似乎在他们身上找不到任何东西,因为文档似乎很少.有什么理由我应该使用其中一个吗?它们有什么主要的优点或缺点吗?

I am using Amazon's DynamoDB java SDK and want to know the difference between the AmazonDynamoDBClient and DynamoDB classes. I can't seem to find anything on them since there appears to be very little documentation. Is there any reason I should use one or the other? Are their any major benefits or drawbacks?

推荐答案

这是个好问题.看起来 DynamoDBAmazonDynamoDBClient 的包装器,提供了不同的接口.所以这可能是显而易见的,而不是您正在寻找的答案,但让我描述一下它们之间的一些差异.

This is a good question. It looks like DynamoDB is a wrapper to the AmazonDynamoDBClient, providing a different interface. So this may be obvious and not the answer you are looking for but let me describe some of the differences between them.

AmazonDynamoDBClient 中的 createTable 方法返回一个 CreateTableResult 对象,而 DynamoDB 的 createTable 方法返回返回一个 Table 对象.然后可以使用这个 Table 对象对该表执行 CRUD.Table 对象开始看起来像 DynamoDB 的通用 ORM 对象.所以它不是真正的 DynamoDB 类 vs AmazonDynamoDBClient,它更像是 DynamoDB &Table 类与 AmazonDynamoDBClient.

The createTable method in AmazonDynamoDBClient returns back a CreateTableResult object, whereas the DynamoDB's createTable method returns back a Table object. This Table object can then be used to do CRUD on that table. The Table object starts looking like a generic ORM object for DynamoDB. So its not really DynamoDB class vs AmazonDynamoDBClient, its more like DynamoDB & Table classes vs AmazonDynamoDBClient.

AmazonDynamoDBClient 明显早于 DynamoDB 类.DynamoDB 是相当新的,在 1.9.x 中出现.但这里还有另一个类值得一提,DynamoDBMapper.DynamoDBMapper 允许更多类似 ORM 的操作.允许开发人员注释他们的 JavaBean 数据模型,以便他们可以轻松地对 DynamoDB 表进行 CRUD.您可以直接使用对象,DynamoDBMapper 将对 DynamoDB 数据库进行 CRUD 工作.DynamoDBMapper 早于 DynamoDB 类.我想也许有些开发人员不想使用 DynamoDBMapper(可能不喜欢 OO 或注释?)并且需要另一种范式,但我只是假设.因此创建了 DynamoDBTable 类.使用 Table 类,您可以比 AmazonDynamoDBClient 更轻松地与表交互,但无需创建 DynamoDBMapper 所需的 JavaBean 数据模型的开销.

AmazonDynamoDBClient is obviously older than the DynamoDB class. DynamoDB is pretty new, coming out in 1.9.x. But there is another class here worth mentioning, DynamoDBMapper. DynamoDBMapper allows for even more ORM like operations. Allowing developers to annotate their JavaBean data-model's so that they can easily be CRUD'd against a DynamoDB table. You get to work with your objects directly and the DynamoDBMapper will do the CRUD work on the DynamoDB database. DynamoDBMapper is older than the DynamoDB class. I think maybe some developers did not want to work with the DynamoDBMapper (maybe not a fan of OO or annotations?) and there needed to be another paradigm, but I'm only hypothesizing. So the DynamoDB and Table classes were created. With the Table class you can interact with your tables more easily than the AmazonDynamoDBClient but without the overhead of creating JavaBean data-models that the DynamoDBMapper require.

相关文章