Cette section introduit des méthodes sur un objet Connection
pour gérer les schemas et les propriétés des nodes et des edges dans un graphset.
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.
Schema
showSchema()
Récupère tous les schemas de nodes et d'edges du graphset actuel.
Paramètres :
RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
List<Schema>
: La liste de tous les schemas dans le graphset actuel.
// Récupère tous les schemas dans le graphset 'UltipaTeam' et imprime leurs types et noms
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
List<Schema> schemas = client.showSchema(requestConfig);
Assert.assertTrue(schemas.size() > 0);
for (Schema schema : schemas) {
System.out.println(schema.getDbType() + ": " + schema.getName());
}
DBNODE: default
DBNODE: member
DBNODE: organization
DBEDGE: default
DBEDGE: reportsTo
DBEDGE: relatesTo
getSchema()
Récupère un schema de node ou d'edge du graphset actuel.
Paramètres :
String
: Nom du schema.DBtype
: Type du schema (node ou edge).RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
Schema
: Le schema récupéré.
// Récupère le schema de node 'member' et le schema d'edge 'connectsTo' dans le graphset 'UltipaTeam', et imprime toutes leurs informations
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
Schema schema1 = client.getSchema("member", Ultipa.DBType.DBNODE, requestConfig);
System.out.println("schema1: " + new Gson().toJson(schema1));
Schema schema2 = client.getSchema("connectsTo", Ultipa.DBType.DBEDGE, requestConfig);
System.out.println("schema2: " + new Gson().toJson(schema2));
schema1: {"name":"member","description":"","properties":[{"name":"name","propertyType":"STRING","type":"string","lte":false,"description":"","ignored":false,"extra":"{}"},{"name":"title","propertyType":"STRING","type":"string","lte":false,"description":"","ignored":false,"extra":"{}"},{"name":"profile","propertyType":"STRING","type":"string","lte":false,"description":"","ignored":false,"extra":"{}"}],"dbType":"DBNODE","total":7}
schema2: null
showNodeSchema()
Récupère tous les schemas de nodes du graphset actuel.
Paramètres :
RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
List<Schema>
: La liste de tous les schemas de nodes dans le graphset actuel.
// Récupère tous les schemas de nodes dans le graphset 'UltipaTeam' et imprime leurs noms
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
List<Schema> schemas = client.showNodeSchema(requestConfig);
Assert.assertTrue(schemas.size() > 0);
for (Schema schema : schemas) {
System.out.println(schema.getName());
}
default
member
organization
showEdgeSchema()
Récupère tous les schemas d'edges du graphset actuel.
Paramètres :
RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
List<Schema>
: La liste de tous les schemas d'edges dans le graphset actuel.
// Récupère tous les schemas d'edges dans le graphset 'UltipaTeam' et imprime leurs noms
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
List<Schema> schemas = client.showEdgeSchema(requestConfig);
Assert.assertTrue(schemas.size() > 0);
for (Schema schema : schemas) {
System.out.println(schema.getName());
}
default
reportsTo
relatesTo
getNodeSchema()
Récupère un schema de node du graphset actuel.
Paramètres :
String
: Nom du schema.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
Schema
: Le schema de node récupéré.
// Récupère le schema de node 'member' dans le graphset 'UltipaTeam' et imprime ses propriétés
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
Schema schema = client.getNodeSchema("member", requestConfig);
System.out.println(schema.getProperties());
[Property(name=name, propertyType=STRING, subPropertyTypes=null, type=string, lte=false, read=null, write=null, schema=null, description=, ignored=false, extra={}, encrypt=null, encrypted=null), Property(name=title, propertyType=STRING, subPropertyTypes=null, type=string, lte=false, read=null, write=null, schema=null, description=, ignored=false, extra={}, encrypt=null, encrypted=null), Property(name=profile, propertyType=STRING, subPropertyTypes=null, type=string, lte=false, read=null, write=null, schema=null, description=, ignored=false, extra={}, encrypt=null, encrypted=null)]
getEdgeSchema()
Récupère un schema d'edge du graphset actuel.
Paramètres :
String
: Nom du schema.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
Schema
: Le schema d'edge récupéré.
// Récupère le schema d'edge 'relatesTo' dans le graphset 'UltipaTeam' et imprime ses propriétés
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
Schema schema = client.getEdgeSchema("relatesTo", requestConfig);
System.out.println(schema.getProperties());
[Property(name=type, propertyType=STRING, subPropertyTypes=null, type=string, lte=false, read=null, write=null, schema=null, description=, ignored=false, extra={}, encrypt=null, encrypted=null)]
createSchema()
Crée un nouveau schema dans le graphset actuel.
Paramètres :
Schema
: Le schema à créer ; les champsname
etdbType
doivent être définis,description
etproperties
sont optionnels.boolean
(Optionnel) : Indique s'il faut créer des propriétés, la valeur par défaut estfalse
.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
Response
: Résultat de la requête.
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
// Crée le schema de node 'utility' (avec propriétés) dans le graphset 'UltipaTeam' et imprime toutes ses informations
Schema schema1 = new Schema();
schema1.setName("utility");
schema1.setDescription("Office utilities");
schema1.setDbType(Ultipa.DBType.DBNODE);
Property property1 = new Property();
property1.setName("name");
property1.setType("string");
Property property2 = new Property();
property2.setName("purchaseDate");
property2.setType("datetime");
ArrayList<Property> propertyArrayList = new ArrayList<>();
propertyArrayList.add(property1);
propertyArrayList.add(property2);
schema1.setProperties(propertyArrayList);
Response response1 = client.createSchema(schema1, true, requestConfig);
System.out.println(response1.getStatus().getErrorCode());
Thread.sleep(3000);
Schema newSchema1 = client.getNodeSchema("utility", requestConfig);
System.out.println(new Gson().toJson(newSchema1));
// Crée le schema d'edge 'managedBy' (sans propriétés) dans le graphset 'UltipaTeam' et imprime toutes ses informations
Schema schema2 = new Schema();
schema2.setName("managedBy");
schema2.setDbType(Ultipa.DBType.DBEDGE);
Response response2 = client.createSchema(schema2, false, requestConfig);
System.out.println(response2.getStatus().getErrorCode());
Thread.sleep(3000);
Schema newSchema2 = client.getEdgeSchema("managedBy", requestConfig);
System.out.println(new Gson().toJson(newSchema2));
SUCCESS
{"name":"utility","description":"Office utilities","properties":[{"name":"name","propertyType":"STRING","type":"string","lte":false,"description":"","ignored":false,"extra":"{}"},{"name":"purchaseDate","propertyType":"DATETIME","type":"datetime","lte":false,"description":"","ignored":false,"extra":"{}"}],"dbType":"DBNODE","total":0}
SUCCESS
{"name":"managedBy","description":"null,"properties":[],"dbType":"DBEDGE","total":0}
createSchemaIfNotExist()
Crée un nouveau schema dans le graphset actuel, gérant les cas où le nom du schema donné existe déjà en ignorant l'erreur.
Paramètres :
Schema
: Le schema à créer ; les champsname
etdbType
doivent être définis,description
etproperties
sont optionnels.boolean
(Optionnel) : Indique s'il faut créer des propriétés, la valeur par défaut estfalse
.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
boolean
: Indique si la création a lieu.
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
Schema schema = new Schema();
schema.setName("utility");
schema.setDescription("Office utilities");
schema.setDbType(Ultipa.DBType.DBNODE);
// Crée un schema dans le graphset 'UltipaTeam' et imprime si la création a lieu
boolean flag1 = client.createSchemaIfNotExist(schema, requestConfig);
System.out.println(flag1);
// Crée à nouveau le même schema et imprime si la création a lieu
Thread.sleep(3000);
boolean flag2 = client.createSchemaIfNotExist(schema, requestConfig);
System.out.println(flag2);
true
false
alterSchema()
Modifie le nom et la description d'un schema existant dans le graphset actuel par son nom.
Paramètres :
Schema
: Le schema existant à modifier ; les champsname
etDbType
doivent être définis.Schema
: La nouvelle configuration pour le schema existant ; l'un ou les deux champsname
etdescription
doivent être définis.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
Response
: Résultat de la requête.
// Renomme le schema de node 'utility' en 'securityUtility' et supprime sa description dans le graphset 'UltipaTeam'
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
Schema schema = client.getSchema("utility", Ultipa.DBType.DBNODE, requestConfig);
Schema newSchema = new Schema();
newSchema.setName("securityUtility");
newSchema.setDescription("yyyy");
Response response = client.alterSchema(schema, newSchema, requestConfig);
System.out.println(response.getStatus().getErrorCode());
SUCCESS
dropSchema()
Supprime un schema du graphset actuel par son nom.
Paramètres :
Schema
: Le schema existant à supprimer ; les champsname
etdbType
doivent être définis.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
Response
: Résultat de la requête.
// Supprime le schema de node 'utility' dans le graphset 'UltipaTeam'
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
Schema schema = client.getSchema("utility", Ultipa.DBType.DBNODE, requestConfig);
Response response = client.dropSchema(schema, requestConfig);
System.out.println(new Gson().toJson(response));
{"host":"192.168.1.87:60611","statistic":{"rowAffected":0,"totalTimeCost":0,"engineTimeCost":0,"nodeAffected":0,"edgeAffected":0,"totalCost":1,"engineCost":0},"status":{"errorCode":"SUCCESS","msg":"","clusterInfo":{"redirect":"","leaderAddress":"","followers":[]}},"aliases":[],"items":{},"explainPlan":{"planNodes":[]}}
Propriété
showProperty()
Récupère des propriétés personnalisées des nodes ou des edges du graphset actuel.
Paramètres :
DBType
: Type de la propriété (node ou edge).String
(Optionnel) : Nom du schema.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
List<Property>
: La liste de toutes les propriétés récupérées dans le graphset actuel.
// Récupère toutes les propriétés de nodes personnalisées dans le graphset 'UltipaTeam' et imprime leurs noms, types et schemas associés
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
List<Property> propertyList = client.showProperty(Ultipa.DBType.DBNODE, requestConfig);
for (Property property : propertyList) {
System.out.println(property.getName() + "(" + property.getType() + ")" + " is associated with schema named " + property.getSchema());
}
name(string) est associé au schema nommé member
title(string) est associé au schema nommé member
profile(string) est associé au schema nommé member
name(string) est associé au schema nommé organization
logo(string) est associé au schema nommé organization
showNodeProperty()
Récupère des propriétés personnalisées des nodes du graphset actuel.
Paramètres :
String
(Optionnel) : Nom du schema.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
List<Property>
: La liste de toutes les propriétés récupérées dans le graphset actuel.
// Récupère toutes les propriétés personnalisées du schema de node 'member' dans le graphset 'UltipaTeam' et imprime le nombre
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
List<Property> propertyList = client.showNodeProperty("member", requestConfig);
System.out.println(propertyList.size());
3
showEdgeProperty()
Récupère des propriétés personnalisées des edges du graphset actuel.
Paramètres :
String
(Optionnel) : Nom du schema.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
List<Property>
: La liste de toutes les propriétés récupérées dans le graphset actuel.
// Récupère toutes les propriétés personnalisées du schema d'edge 'relatesTo' dans le graphset 'UltipaTeam' et imprime leurs noms
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
List<Property> propertyList = client.showEdgeProperty("relatesTo", requestConfig);
for (Property property : propertyList) {
System.out.println(property.getName());
}
type
getProperty()
Récupère une propriété personnalisée des nodes ou des edges du graphset actuel.
Paramètres :
String
: Nom du schema.DBType
: Type de la propriété (node ou edge).String
: Nom de la propriété.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
Property
: La propriété récupérée.
// Récupère la propriété de node @member.title dans le graphset 'UltipaTeam' et imprime toutes ses informations
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
Property property = client.getProperty("member", Ultipa.DBType.DBNODE, "title", requestConfig);
System.out.println(new Gson().toJson(property));
{"name":"title","propertyType":"STRING","type":"string","lte":false,"read":true,"write":true,"schema":"member","description":"","ignored":false,"extra":"{}","encrypt":"","encrypted":false}
getNodeProperty()
Récupère une propriété personnalisée des nodes du graphset actuel.
Paramètres :
String
: Nom du schema.String
: Nom de la propriété.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
Property
: La propriété récupérée.
// Récupère la propriété de node @member.title dans le graphset 'UltipaTeam' et imprime toutes ses informations
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
Property property = client.getNodeProperty("member", "title", requestConfig);
System.out.println(new Gson().toJson(property));
{"name":"title","propertyType":"STRING","type":"string","lte":false,"read":true,"write":true,"schema":"member","description":"","ignored":false,"extra":"{}","encrypt":"","encrypted":false}
getEdgeProperty()
Récupère une propriété personnalisée des edges du graphset actuel.
Paramètres :
String
: Nom du schema.String
: Nom de la propriété.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
Property
: La propriété récupérée.
// Récupère la propriété d'edge @relatesTo.type dans le graphset 'UltipaTeam' et imprime toutes ses informations
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
Property property = client.getEdgeProperty("relatesTo", "type", requestConfig);
System.out.println(new Gson().toJson(property));
{"name":"type","propertyType":"STRING","type":"string","lte":false,"read":true,"write":true,"schema":"relatesTo","description":"","ignored":false,"extra":"{}","encrypt":"","encrypted":false}
createProperty()
Crée une nouvelle propriété pour un schema de node ou d'edge dans le graphset actuel.
Paramètres :
DBType
: Type de la propriété (node ou edge).String
: Nom du schema, écrivez*
pour spécifier tous les schemas.Property
: La propriété à créer ; les champsname
ettype
doivent être définis,description
est optionnel.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
Response
: Résultat de la requête.
// Crée deux propriétés pour le schema de node 'member' dans le graphset 'UltipaTeam' et imprime les codes d'erreur
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
String schema = "member";
Property property1 = new Property();
property1.setName("startDate");
property1.setType("datetime");
Property property2 = new Property();
property2.setName("age");
property2.setType("int32");
Response response1 = client.createProperty(Ultipa.DBType.DBNODE, schema, property1, requestConfig);
System.out.println(response1.getStatus().getErrorCode());
Response response2 = client.createProperty(Ultipa.DBType.DBNODE, schema, property2, requestConfig);
System.out.println(response2.getStatus().getErrorCode());
SUCCESS
SUCCESS
createPropertyIfNotExist()
Crée une nouvelle propriété pour un schema de node ou d'edge dans le graphset actuel, en gérant les cas où le nom de la propriété donnée existe déjà en ignorant l'erreur.
Paramètres :
DBType
: Type de la propriété (node ou edge).String
: Nom du schema, écrivez*
pour spécifier tous les schemas.Property
: La propriété à créer ; les champsname
ettype
doivent être définis,description
est optionnel.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
boolean
: Indique si la création a lieu.
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
Property property = new Property();
property.setName("startDate");
property.setType("datetime");
// Crée une propriété pour le schema de node 'member' dans le graphset 'UltipaTeam' et imprime si la création a lieu
boolean flag1 = client.createPropertyIfNotExist(Ultipa.DBType.DBNODE, "member", property, requestConfig);
System.out.println(flag1);
// Crée à nouveau la même propriété dans le graphset 'UltipaTeam' et imprime si la création a lieu
Thread.sleep(3000);
boolean flag2 = client.createPropertyIfNotExist(Ultipa.DBType.DBNODE, "member", property, requestConfig);
System.out.println(flag2);
true
false
alterProperty()
Modifie le nom et la description d'une propriété personnalisée existante dans le graphset actuel par son nom.
Paramètres :
DBType
: Type de la propriété (node ou edge).Property
: La propriété existante à modifier ; les champsname
etschema
(écrire*
pour spécifier tous les schemas) doivent être définis.Property
: La nouvelle configuration pour la propriété existante ; l'un ou les deux champsname
etdescription
doivent être définis.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
Response
: Résultat de la requête.
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
// Renomme les propriétés 'name' associées à tous les schemas de nodes en `Name` dans le graphset 'UltipaTeam'
Property oldProperty = new Property();
oldProperty.setName("name");
oldProperty.setSchema("*");
Property newProperty = new Property();
newProperty.setName("Name");
Response response = client.alterProperty(Ultipa.DBType.DBNODE, oldProperty, newProperty, requestConfig);
System.out.println(response.getStatus().getErrorCode());
SUCCESS
dropProperty()
Supprime une propriété personnalisée du graphset actuel par son nom et le schema associé.
Paramètres :
DBType
: Type de la propriété (node ou edge).String
(Optionnel) : Nom du schema ; tous les schemas sont spécifiés lorsqu'il est ignoré.String
: Nom de la propriété.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Renvoie :
Response
: Résultat de la requête.
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
// Supprime les propriétés 'startDate' associées à tous les schemas de nodes dans le graphset 'UltipaTeam' et imprime le code d'erreur
Response response1 = client.dropProperty(Ultipa.DBType.DBNODE, "startDate", requestConfig);
System.out.println(response1.getStatus().getErrorCode());
// Supprime la propriété de node @member.name dans le graphset 'UltipaTeam' et imprime le code d'erreur
Response response2 = client.dropProperty(Ultipa.DBType.DBNODE, "member", "name", requestConfig);
System.out.println(response2.getStatus().getErrorCode());
SUCCESS
SUCCESS
Exemple Complet
package com.ultipa.www.sdk.api;
import com.ultipa.Ultipa;
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.ArrayList;
public class Main {
public static void main(String[] args) {
// Configurations de connexion
UltipaConfiguration myConfig = UltipaConfiguration.config()
// Exemples d'URI : .hosts("mqj4zouys.us-east-1.cloud.ultipa.com:60010")
.hosts("192.168.1.85:60611,192.168.1.87:60611,192.168.1.88:60611")
.username("<username>")
.password("<password>");
UltipaClientDriver driver = null;
try {
// Établit la connexion à la base de données
driver = new UltipaClientDriver(myConfig);
Connection client = driver.getConnection();
Thread.sleep(3000);
// Configurations de requête
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("UltipaTeam");
// Crée le schema de node 'utility' (avec propriétés) dans le graphset 'UltipaTeam' et imprime le code d'erreur
Schema schema = new Schema();
schema.setName("utility");
schema.setDescription("Office utilities");
schema.setDbType(Ultipa.DBType.DBNODE);
Property property1 = new Property();
property1.setName("name");
property1.setType("string");
Property property2 = new Property();
property2.setName("purchaseDate");
property2.setType("datetime");
ArrayList<Property> propertyArrayList = new ArrayList<>();
propertyArrayList.add(property1);
propertyArrayList.add(property2);
schema.setProperties(propertyArrayList);
Response response = client.createSchema(schema, true, requestConfig);
System.out.println(response.getStatus().getErrorCode());
} catch (InterruptedException e) {
throw new RuntimeException(e);
} finally {
if (driver != null) {
driver.close();
}
}
}
}