Cette section présente les méthodes uql()
et uqlStream()
sur un objet Connection
pour interroger la base de données en utilisant UQL.
Chaque exemple se concentre uniquement sur l'utilisation de la méthode. Pour un exemple de code complet, veuillez vous référer à l’exemple complet.
UQL (Ultipa Query Language) est le langage conçu pour interagir pleinement avec les bases de données graph Ultipa. Pour des informations détaillées sur UQL, veuillez consulter la documentation.
uql()
Exécute une requête UQL sur le graphset actuel ou la base de données et renvoie le résultat.
Paramètres :
String
: La requête UQL à exécuter.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
// Récupère 5 nodes @movie dans le graphset 'miniCircle' et imprime leurs noms
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("miniCircle");
Response response = client.uql("find().nodes({@movie}) as n return n{*} limit 5", requestConfig);
List<Node> nodeList = response.alias("n").asNodes();
for (Node node : nodeList) {
System.out.println(node.get("name"));
}
The Shawshank Redemption
Farewell My Concubine
Léon: The Professional
Titanic
Life is Beautiful
Pour plus d'exemples, veuillez vous référer à Types Mapping Ultipa and Java.
uqlStream()
Exécute une requête UQL sur le graphset actuel ou la base de données et renvoie le résultat de manière incrémentielle, permettant de gérer de gros ensembles de données sans tout charger en mémoire d'un seul coup.
Paramètres :
String
: La requête UQL à exécuter.UqlListener
: Écouteur pour le processus de streaming.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
void
// Récupère tous les chemins à 1 étape dans le graphset 'miniCircle'
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("miniCircle");
client.uqlStream("n().e().n() as paths return paths{*}", new UqlListener() {
int count = 0;
public void onReady() {
System.out.println("Start downloading");
}
public void next(Response response) {
if (response.getStatus().getErrorCode() != Ultipa.ErrorCode.SUCCESS){
System.out.println(response.getStatus().getMsg());
}
List<Path> paths = response.get(0).asPaths();
count += paths.size();
System.out.println("count = " + count);
}
public void onComplete() {
System.out.println("Done");
System.out.println("count = " + count);
}
public void onError(Throwable throwable) {
System.out.println("Error");
}
}, requestConfig);
count = 1250
count = 1392
Done
count = 1392
Exemple Complet
package com.ultipa.www.sdk.api;
import com.ultipa.sdk.connect.Connection;
import com.ultipa.sdk.connect.conf.RequestConfig;
import com.ultipa.sdk.connect.conf.UltipaConfiguration;
import com.ultipa.sdk.connect.driver.UltipaClientDriver;
import com.ultipa.sdk.operate.entity.*;
import com.ultipa.sdk.operate.response.Response;
import java.util.*;
public class Main {
public static void main(String[] args) {
// Configurations de connexion
UltipaConfiguration myConfig = UltipaConfiguration.config()
// Exemple d'URI : .hosts("mqj4zouys.us-east-1.cloud.ultipa.com:60010")
.hosts("192.168.1.85:60061,192.168.1.86:60061,192.168.1.87:60061")
.username("<username>")
.password("<password>");
UltipaClientDriver driver = null;
try {
// Établit une connexion à la base de données
driver = new UltipaClientDriver(myConfig);
Connection client = driver.getConnection();
// Configurations des requêtes
RequestConfig config = new RequestConfig();
config.setGraphName("amz");
// Récupère 10 nodes et imprime la valeur des propriétés _id et storeName du premier node retourné
Response response = client.uql("find().nodes() as n return n{*} limit 10");
List<Node> nodeList = response.alias("n").asNodes();
System.out.println("ID of the 1st node: " + nodeList.get(0).getID());
System.out.println("Store name of the 1st node: " + nodeList.get(0).get("storeName"));
} finally {
if (driver != null) {
driver.close();
}
}
}
}