2015-06-11 28 views

回答

13

這是一個很好的問題。它看起來像DynamoDBAmazonDynamoDBClient的包裝,提供了不同的界面。所以這可能是顯而易見的,而不是你正在尋找的答案,但讓我描述它們之間的一些差異。

createTable該方法在AmazonDynamoDBClient就返回一個CreateTableResult對象,而DynamoDB的CreateTable方法返回一個Table對象。這個Table對象可以用來在該表上執行CRUD。 Table對象看起來像DynamoDB的通用ORM對象。所以它不是真的DynamoDB類vs AmazonDynamoDBClient,它更像DynamoDB & Table類vs AmazonDynamoDBClient

AmazonDynamoDBClient明顯比DynamoDB類要舊。 DynamoDB非常新,在1.9.x中出現。但是這裏值得一提的是另外一類,DynamoDBMapperDynamoDBMapper允許更多的ORM類操作。允許開發人員對他們的JavaBean數據模型進行註釋,以便他們可以輕鬆地針對DynamoDB表進行CRUD。您可以直接使用對象,DynamoDBMapper將在DynamoDB數據庫上執行CRUD工作。 DynamoDBMapperDynamoDB類要舊。我想也許有些開發人員不想使用DynamoDBMapper(也許不是OO或註釋的粉絲?),並且需要另一個範例,但我只是假設。所以創建了DynamoDBTable類。使用Table類,您可以比AmazonDynamoDBClient更容易地與表交互,但不會創建DynamoDBMapper需要的JavaBean數據模型的開銷。