Certains fans d'Oak utilisent ArangoDB. ArangoDB est une base de données NoSQL hybride qui tire parti de DocumentDB et GraphDB.
** Je vais laisser DocumentDB et GraphDB de côté. *
Chez Oak Fan, nous créons des services qui utilisent des données telles que les informations sur les produits et les ventes.
Dans l'équipe à laquelle j'appartiens, je pense qu'une base de données comme ArangoDB convient lorsque vous souhaitez gérer des informations (spécifications, etc.) avec des propriétés différentes pour chaque produit et des données compte tenu de la relation entre les données telles que le fabricant et la catégorie. ,J'utilise.
D'autre part, Java ou Kotlin est utilisé pour créer un logiciel qui se réfère à ces données et les agrège. Par conséquent, lors de l'accès à ArangoDB par programme, utilisez l'API Java fournie par ArangoDB.
ArangoDB n'est pas Java. Les données à traiter sont essentiellement au format JSON. Évidemment, la définition du type de données sera différente de celle du programme.
Lorsque je mets le type de données qui est naturellement utilisé en Java dans ArangoDB, il change pour le type qu'ArangoDB peut gérer (format JSON), et je l'ai testé pour ne pas être dérangé par une conversion de type involontaire lors de l'utilisation de données. ..
Les différentes versions sont les suivantes.
Java → ArangoDB
Pour stocker dans ArangoDB, utilisez la classe BaseDocument
et définissez les données avec la méthode ʻaddAttribute ()`.
Vérifiez les données stockées avec l'interface utilisateur Web ArangoDB et vérifiez l'état stocké.
Type Java | → Type de base de données Arango | Remarques |
---|---|---|
int | Valeur numérique(entier) | |
Integer | Valeur numérique(entier) | |
long | Valeur numérique(entier) | |
Long | Valeur numérique(entier) | |
float | Valeur numérique(Fraction) | * Les données sont corrompues |
Float | Valeur numérique(Fraction) | * Les données sont corrompues |
double | Valeur numérique(Fraction) | |
Double | Valeur numérique(Fraction) | |
BigDecimal | Chaîne | |
boolean | Valeur booléenne(true/false) | |
Boolean | Valeur booléenne(true/false) | |
LocalDate | Chaîne | Format ISO8601 |
LocalDateTime | Chaîne | Format ISO8601 |
OffsetDateTime | Chaîne | Format ISO8601 |
ZonedDateTime | Chaîne | ISO8601(Expansion)format |
List | Tableau | |
Map | objet | Le type de l'objet est le même que le mappage ci-dessus |
ArangoDB → Java Le type de données lorsque les données sont stockées dans ArangoDB à partir de WebUI et acquises par Java est le suivant.
Type ArangoDB | → Type Java | Remarques |
---|---|---|
Chaîne | String | |
Valeur numérique(entier) | Long | |
Valeur numérique(Fraction) | Double | |
Valeur booléenne(true/false) | Boolean | |
Tableau | ArrayList | Le type intérieur est le même que les autres |
objet | HashMap | Le type intérieur est le même que les autres |
Java → ArangoDB → Java Le flux de changement de type de données lorsque les données stockées dans ArangoDB en Java sont acquises en Java est le suivant.
Type Java | → Type de base de données Arango | → Type Java | Remarques |
---|---|---|---|
int | Valeur numérique(entier) | Long | |
Integer | Valeur numérique(entier) | Long | |
long | Valeur numérique(entier) | Long | |
Long | Valeur numérique(entier) | Long | |
float | Valeur numérique(Fraction) | Double | * Les données sont corrompues |
Float | Valeur numérique(Fraction) | Double | * Les données sont corrompues |
double | Valeur numérique(Fraction) | Double | |
Double | Valeur numérique(Fraction) | Double | |
BigDecimal | Chaîne | String | |
boolean | Valeur booléenne(true/false) | Boolean | |
Boolean | Valeur booléenne(true/false) | Boolean | |
LocalDate | Chaîne | String | Format ISO8601 |
LocalDateTime | Chaîne | String | Format ISO8601 |
OffsetDateTime | Chaîne | String | Format ISO8601 |
ZonedDateTime | Chaîne | String | ISO8601(Expansion)format |
List | Tableau | ArrayList | Le type intérieur est le même que les autres |
Map | objet | HashMap | Le type de l'objet est le même que le mappage ci-dessus |
J'ai trouvé que je devais être un peu prudent lors de l'utilisation d'ArangoDB avec l'API Java.
Vous pouvez l'utiliser sans vous en soucier
--L'entier est de type Long --La fraction est de type Double
Je veux m'étendre un peu
--Si vous voulez gérer avec Big Decimal --Si vous le mettez dans ArangoDB, il sera sérialisé en une chaîne de caractères. --Lors de la récupération depuis ArangoDB, elle est récupérée sous forme de chaîne de caractères, désérialisez donc la chaîne de caractères.
En fait, le calcul des fractions est plus compliqué. .. .. Si vous êtes intéressé ( ̄ ー  ̄)
Recommended Posts