Ich verwende DynamoDB Java SDK Amazon und wollen den Unterschied zwischen den AmazonDynamoDBClient und DynamoDB Klassen kennen. Ich kann anscheinend nichts finden, da es sehr wenig Dokumentation zu geben scheint. Gibt es einen Grund, warum ich das eine oder das andere benutzen sollte? Sind ihre Hauptvorteile oder -nachteile?Unterschiede zwischen den Klassen AmazonDynamoDBClient und DynamoDB in ihrem Java SDK?
Antwort
Dies ist eine gute Frage. Es sieht aus wie DynamoDB
ist ein Wrapper für die AmazonDynamoDBClient
, die eine andere Schnittstelle zur Verfügung stellt. Das mag also offensichtlich sein und nicht die Antwort, nach der Sie suchen, aber lassen Sie mich einige der Unterschiede zwischen ihnen beschreiben.
createTable
Die Methode in AmazonDynamoDBClient
kehrt zurück ein CreateTableResult
Objekt, während die DynamoDB
‚s create Methode gibt ein Table
Objekt zurück. Dieses Table
Objekt kann dann verwendet werden, um CRUD auf diesem Tisch zu machen. Das Objekt Table
sieht aus wie ein generisches ORM-Objekt für DynamoDB. So ist es nicht wirklich DynamoDB
Klasse vs AmazonDynamoDBClient
, seine eher wie DynamoDB
& Table
Klassen vs AmazonDynamoDBClient
.
AmazonDynamoDBClient
ist offensichtlich älter als die DynamoDB
Klasse. DynamoDB
ist ziemlich neu, kommt in 1.9.x. Aber hier ist noch eine andere Klasse erwähnenswert, DynamoDBMapper
. DynamoDBMapper
ermöglicht noch mehr ORM-ähnliche Operationen. Entwicklern erlauben, ihre JavaBean-Datenmodelle mit Anmerkungen zu versehen, damit sie leicht gegen eine DynamoDB-Tabelle CRUD-behandelt werden können. Sie können direkt mit Ihren Objekten arbeiten und die DynamoDBMapper
wird die CRUD-Arbeit an der DynamoDB-Datenbank ausführen. ist älter als die DynamoDB
Klasse. Ich denke, vielleicht wollten einige Entwickler nicht mit der DynamoDBMapper
arbeiten (vielleicht kein Fan von OO oder Anmerkungen?) Und es musste ein anderes Paradigma geben, aber ich vermute nur. So wurden die Klassen DynamoDB
und Table
erstellt. Mit der Table
Klasse können Sie mit Ihren Tabellen interagieren leichter als die AmazonDynamoDBClient
aber ohne den Overhead von JavaBean Daten-Modelle erstellen, die die DynamoDBMapper
erfordern.