Einige Oak-Fans verwenden ArangoDB. ArangoDB ist eine hybride NoSQL-Datenbank, die DocumentDB und GraphDB nutzt.
** Ich werde DocumentDB und GraphDB beiseite lassen. * *
Bei Oak Fan erstellen wir Services, die Daten wie Produktinformationen und Verkaufsinformationen verwenden.
In dem Team, dem ich angehöre, denke ich, dass eine Datenbank wie ArangoDB geeignet ist, wenn Sie Informationen (Spezifikationen usw.) mit unterschiedlichen Eigenschaften für jedes Produkt und jede Daten verarbeiten möchten, wobei das Verhältnis von Daten wie Hersteller und Kategorie zu berücksichtigen ist. ,Ich benutze.
Andererseits wird Java oder Kotlin verwendet, um Software zu erstellen, die auf solche Daten verweist und diese aggregiert. Verwenden Sie daher beim programmgesteuerten Zugriff auf ArangoDB die von ArangoDB bereitgestellte Java-API.
ArangoDB ist kein Java. Die zu verarbeitenden Daten liegen grundsätzlich im JSON-Format vor. Offensichtlich unterscheidet sich die Datentypdefinition vom Programm.
Wenn ich den in Java natürlich verwendeten Datentyp in ArangoDB einfüge, ändert er sich in den Typ, den ArangoDB verarbeiten kann (JSON-Format), und ich habe ihn getestet, damit mich die unbeabsichtigte Typkonvertierung bei der Verwendung von Daten nicht stört. ..
Die verschiedenen Versionen sind wie folgt.
Java → ArangoDB Verwenden Sie zum Speichern in ArangoDB die BaseDocument-Klasse und legen Sie die Daten mit der Methode addAttribute () fest.
Überprüfen Sie die gespeicherten Daten mit der ArangoDB-WebUI und überprüfen Sie den gespeicherten Status.
Java-Typ | → Arango DB-Typ | Bemerkungen |
---|---|---|
int | Numerischer Wert(ganze Zahl) | |
Integer | Numerischer Wert(ganze Zahl) | |
long | Numerischer Wert(ganze Zahl) | |
Long | Numerischer Wert(ganze Zahl) | |
float | Numerischer Wert(Fraktion) | * Daten sind beschädigt |
Float | Numerischer Wert(Fraktion) | * Daten sind beschädigt |
double | Numerischer Wert(Fraktion) | |
Double | Numerischer Wert(Fraktion) | |
BigDecimal | String | |
boolean | Boolescher Wert(true/false) | |
Boolean | Boolescher Wert(true/false) | |
LocalDate | String | ISO8601-Format |
LocalDateTime | String | ISO8601-Format |
OffsetDateTime | String | ISO8601-Format |
ZonedDateTime | String | ISO8601(Erweiterung)Format |
List | Array | |
Map | Objekt | Der Typ im Objekt entspricht dem obigen Mapping |
ArangoDB → Java Der Datentyp, wenn Daten in ArangoDB von der WebUI gespeichert und von Java erfasst werden, lautet wie folgt.
ArangoDB-Typ | → Java-Typ | Bemerkungen |
---|---|---|
String | String | |
Numerischer Wert(ganze Zahl) | Long | |
Numerischer Wert(Fraktion) | Double | |
Boolescher Wert(true/false) | Boolean | |
Array | ArrayList | Der Innentyp ist der gleiche wie bei den anderen |
Objekt | HashMap | Der Innentyp ist der gleiche wie bei den anderen |
Java → ArangoDB → Java Der Fluss der Datentypänderung, wenn die in ArangoDB in Java gespeicherten Daten in Java erfasst werden, ist wie folgt.
Java-Typ | → Arango DB-Typ | → Java-Typ | Bemerkungen |
---|---|---|---|
int | Numerischer Wert(ganze Zahl) | Long | |
Integer | Numerischer Wert(ganze Zahl) | Long | |
long | Numerischer Wert(ganze Zahl) | Long | |
Long | Numerischer Wert(ganze Zahl) | Long | |
float | Numerischer Wert(Fraktion) | Double | * Daten sind beschädigt |
Float | Numerischer Wert(Fraktion) | Double | * Daten sind beschädigt |
double | Numerischer Wert(Fraktion) | Double | |
Double | Numerischer Wert(Fraktion) | Double | |
BigDecimal | String | String | |
boolean | Boolescher Wert(true/false) | Boolean | |
Boolean | Boolescher Wert(true/false) | Boolean | |
LocalDate | String | String | ISO8601-Format |
LocalDateTime | String | String | ISO8601-Format |
OffsetDateTime | String | String | ISO8601-Format |
ZonedDateTime | String | String | ISO8601(Erweiterung)Format |
List | Array | ArrayList | Der Innentyp ist der gleiche wie bei den anderen |
Map | Objekt | HashMap | Der Typ im Objekt entspricht dem obigen Mapping |
Ich habe festgestellt, dass ich bei der Verwendung von ArangoDB mit Java-API etwas vorsichtig sein muss.
Sie können es verwenden, ohne sich darum zu kümmern
Ich möchte ein wenig erweitern
Tatsächlich ist die Berechnung von Brüchen komplizierter. .. .. Wenn Sie interessiert sind ( ̄ ー  ̄)
Recommended Posts