Change Password

Please enter the password.
Please enter the password. Between 8-64 characters. Not identical to your email address. Contain at least 3 of: uppercase, lowercase, numbers, and special characters.
Please enter the password.
Submit

Change Nickname

Current Nickname:
Submit

Apply New License

License Detail

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

The MAC address of the server you want to deploy.

Please complete this required field.

Please complete this required field.

Cancel
Apply
ID
Product
Status
Cores
Applied Validity Period(days)
Effective Date
Excpired Date
Mac Address
Apply Comment
Review Comment
Close
Profile
  • Full Name:
  • Phone:
  • Company:
  • Company Email:
  • Country:
  • Language:
Change Password
Apply

You have no license application record.

Apply
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

Product Created On ID Amount (USD) Invoice
Product Created On ID Amount (USD) Invoice

No Invoice

v4.5
Search
    Français
    v4.5

      Insertion et Suppression de Données

      Cette section introduit des méthodes sur un objet Connection pour insérer des nodes et des edges dans le graph ou supprimer des nodes et des edges du 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.

      Modèle de Données Graph d'Exemple

      Les exemples ci-dessous montrent comment insérer ou supprimer des nodes ou des edges d'un graphset avec les définitions de schema et de property suivantes :

      Mappage des Types de Properties

      Lors de l'insertion de nodes ou d'edges, vous devrez peut-être spécifier des valeurs de property de différents types. Le mappage entre les types de property Ultipa et les types de données Java/Driver est le suivant :

      Type de Property Ultipa
      Type Java/Driver
      int32 int
      uint32 long
      int64 long
      uint64 long
      float float
      double double
      decimal BigDecimal, prend en charge divers types numériques (Integer, Float, Double, Long, etc.) et String
      string String
      text String
      datetime String[1], prend également en charge java.util.Date et LocalDateTime lors de l'insertion en batch
      timestamp String[1], prend également en charge java.util.Date lors de l'insertion en batch
      point Point (type Driver)
      blob byte[], String
      list List
      set Set

      [1] Les formats de date prise en charge lors de l'insertion en batch incluent [AA]AA-MM-JJ HH:MM:SS, [AA]AA-MM-JJ HH:MM:SSZ, [AA]AA-MM-JJTTHH:MM:SSZ, [AA]AA-MM-JJTTHH:MM:SSXX, [AA]AA-MM-JJTTHH:MM:SSXXX, [AA]AA-MM-JJ HH:MM:SS.SSS et leurs variantes.

      Insertion

      insertNodes()

      Insère de nouveaux nodes d'un schema dans le graph actuel.

      Paramètres :

      • String: Nom du schema.
      • List<Node>: La liste des objets Node à insérer.
      • InsertRequestConfig (Optionnel): Paramètres de configuration pour la requête.

      Renvoie :

      • Response: Résultat de la requête. L'objet Response contient un alias nodes qui contient tous les nodes insérés lorsque InsertRequestConfig.silent est défini à faux.

      // Inserts two nodes into schema 'user' in graphset 'lcc', prints error code and information of the inserted nodes
      
      InsertRequestConfig insertRequestConfig = new InsertRequestConfig();
      insertRequestConfig.setInsertType(Ultipa.InsertType.NORMAL);
      insertRequestConfig.setGraphName("lcc");
      insertRequestConfig.setSilent(false);
      
      List<Node> nodeList = new ArrayList<>();
      
      Node node1 = new Node();
      node1.setUUID(1l);
      node1.setID("U001");
      Value value1 = Value.newBuilder()
              .add("name", "Alice")
              .add("age", 18)
              .add("score", 65.32)
              .add("birthday", "1993-5-4")
              .add("location", new Point(23.63, 104.25))
              .add("profile", "abc")
              .add("interests", Arrays.asList("tennis", "violin"))
              .add("permissionCodes", new HashSet<>(Arrays.asList(2004, 3025, 1025)))
              .build();
      node1.setValues(value1);
      nodeList.add(node1);
      
      Node node2 = new Node();
      node2.setUUID(2l);
      node2.setID("U002");
      Value value2 = Value.newBuilder().add("name", "Bob").build();
      node2.setValues(value2);
      nodeList.add(node2);
      
      Response response = client.insertNodes("user", nodeList, insertRequestConfig);
      System.out.println(response.getStatus().getErrorCode());
      // There is no alias in Response if InsertRequestConfig.silent is true
      List<Node> insertedNodes = response.alias("nodes").asNodes();
      for (Node node : insertedNodes) {
          System.out.println(node.toString());
      }
      

      SUCCESS
      Node(uuid=1, id=U001, schema=user, values={name=Alice, age=18, score=65.3200000000, birthday=1993-05-04T00:00, location=POINT(23.63 104.25), profile=[B@1e66f1f5, interests=[tennis, violin], permissionCodes=[3025, 1025, 2004]})
      Node(uuid=2, id=U002, schema=user, values={name=Bob, age=null, score=null, birthday=null, location=null, profile=null, interests=null, permissionCodes=null})
      

      insertEdges()

      Insère de nouveaux edges d'un schema dans le graph actuel.

      Paramètres :

      • String: Nom du schema.
      • List<Edge>: La liste des objets Edge à insérer.
      • InsertRequestConfig (Optionnel): Paramètres de configuration pour la requête.

      Renvoie :

      • Response: Résultat de la requête. L'objet Response contient un alias edges qui contient tous les edges insérés lorsque InsertRequestConfig.silent est défini à faux.

      // Inserts two edges into schema 'follows' in graphset 'lcc', prints error code and information of the inserted edges
      
      InsertRequestConfig insertRequestConfig = new InsertRequestConfig();
      insertRequestConfig.setInsertType(Ultipa.InsertType.NORMAL);
      insertRequestConfig.setGraphName("lcc");
      insertRequestConfig.setSilent(false);
      
      List<Edge> edgeList = new ArrayList<>();
      
      Edge edge1 = new Edge();
      edge1.setUUID(1l);
      edge1.setFrom("U001");
      edge1.setTo("U002");
      Value value1 = Value.newBuilder().add("createdOn", "2024-5-6").build();
      edge1.setValues(value1);
      edgeList.add(edge1);
      
      Edge edge2 = new Edge();
      edge2.setUUID(2l);
      edge2.setFrom("U002");
      edge2.setTo("U001");
      Value value2 = Value.newBuilder().add("createdOn", "2024-5-8").build();
      edge2.setValues(value2);
      edgeList.add(edge2);
      
      Response response = client.insertEdges("follows", edgeList, insertRequestConfig);
      System.out.println(response.getStatus().getErrorCode());
      // There is no alias in Response if InsertRequestConfig.silent is true
      List<Edge> insertedEdges = response.alias("edges").asEdges();
      for (Edge edge : insertedEdges) {
          System.out.println(edge.toString());
      }
      

      SUCCESS
      Edge(uuid=1, fromUuid=1, toUuid=2, from=U001, to=U002, schema=follows, values={createdOn=Mon May 06 00:00:00 CST 2024})
      Edge(uuid=2, fromUuid=2, toUuid=1, from=U002, to=U001, schema=follows, values={createdOn=Wed May 08 00:00:00 CST 2024})
      

      insertNodesBatchBySchema()

      Insère de nouveaux nodes d'un schema dans le graph actuel via gRPC. Les properties à l'intérieur des valeurs du node doivent être cohérentes avec celles déclarées dans la structure du schema.

      Paramètres :

      • Schema: Le schema cible.
      • List<Node>: La liste des objets Node à insérer.
      • InsertRequestConfig (Optionnel): Paramètres de configuration pour la requête.

      Renvoie :

      • Response: Résultat de la requête. Response.InsertNodesReply contient le rapport d'insertion lorsque InsertRequestConfig.silent est défini à faux.

      // Inserts two nodes into schema 'user' in graphset 'lcc', prints error code and the insert reply
      
      InsertRequestConfig insertRequestConfig = new InsertRequestConfig();
      insertRequestConfig.setInsertType(Ultipa.InsertType.NORMAL);
      insertRequestConfig.setGraphName("lcc");
      insertRequestConfig.setSilent(false);
      
      ArrayList<Property> properties = new ArrayList<>();
      Property property1 = new Property(), property2 = new Property(), property3 = new Property(), property4 = new Property(), property5 = new Property(), property6 = new Property(), property7 = new Property(), property8 = new Property();
      property1.setName("name");
      property1.setType("string");
      property2.setName("age");
      property2.setType("int32");
      property3.setName("score");
      property3.setType("decimal");
      property4.setName("birthday");
      property4.setType("datetime");
      property5.setName("location");
      property5.setType("point");
      property6.setName("profile");
      property6.setType("blob");
      property7.setName("interests");
      property7.setType("string[]");
      property8.setName("permissionCodes");
      property8.setType("set(int32)");
      properties.add(property1);
      properties.add(property2);
      properties.add(property3);
      properties.add(property4);
      properties.add(property5);
      properties.add(property6);
      properties.add(property7);
      properties.add(property8);
      
      Schema schema = new Schema();
      schema.setName("user");
      schema.setProperties(properties);
      
      List<Node> nodeList = new ArrayList<>();
      
      Node node1 = new Node();
      node1.setUUID(1l);
      node1.setID("U001");
      Value value1 = Value.newBuilder()
              .add("name", "Alice")
              .add("age", 18)
              .add("score", 65.32)
              //.add("birthday", "1993-05-04")
              //.add("birthday", new Date(736473600000l)) // Timestamp in milliseconds
              .add("birthday", LocalDateTime.of(1993,5,4,00,00))
              .add("location", new Point(23.63, 104.25))
              .add("profile", "abc")
              .add("interests", Arrays.asList("tennis", "violin"))
              .add("permissionCodes", new HashSet<>(Arrays.asList(2004, 3025, 1025)))
              .build();
      node1.setValues(value1);
      nodeList.add(node1);
      
      Node node2 = new Node();
      node2.setUUID(2l);
      node2.setID("U002");
      Value value2 = Value.newBuilder()
              .add("name", "Bob")
              .add("age", null)
              .add("score", null)
              .add("birthday", null)
              .add("location", null)
              .add("profile", null)
              .add("interests", null)
              .add("permissionCodes", null)
              .build();
      node2.setValues(value2);
      nodeList.add(node2);
      
      Response response = client.insertNodesBatchBySchema(schema, nodeList, insertRequestConfig);
      System.out.println(response.getStatus().getErrorCode());
      // Response.InsertNodesReply is null if InsertRequestConfig.silent is true
      System.out.println(response.getInsertNodesReply());
      

      SUCCESS
      InsertResponse(idList=[], uuidList=[1, 2], errorItems={})
      

      insertEdgesBatchBySchema()

      Insère de nouveaux edges d'un schema dans le graph actuel via gRPC. Les properties à l'intérieur des valeurs de l'edge doivent être cohérentes avec celles déclarées dans la structure du schema.

      Paramètres :

      • Schema: Le schema cible.
      • List<Edge>: La liste des objets Edge à insérer.
      • InsertRequestConfig (Optionnel): Paramètres de configuration pour la requête.

      Renvoie :

      • Response: Résultat de la requête. Response.InsertNodesReply contient le rapport d'insertion lorsque InsertRequestConfig.silent est défini à faux.

      // Inserts two edges into schema 'follows' in graphset 'lcc', prints error code and the insert reply
      
      InsertRequestConfig insertRequestConfig = new InsertRequestConfig();
      insertRequestConfig.setInsertType(Ultipa.InsertType.NORMAL);
      insertRequestConfig.setGraphName("lcc");
      insertRequestConfig.setSilent(false);
      
      ArrayList<Property> properties = new ArrayList<>();
      Property property = new Property();
      property.setName("createdOn");
      property.setType("timestamp");
      properties.add(property);
      
      Schema schema = new Schema();
      schema.setName("follows");
      schema.setProperties(properties);
      
      List<Edge> edgeList = new ArrayList<>();
      
      Edge edge1 = new Edge();
      edge1.setUUID(1l);
      edge1.setFrom("U001");
      edge1.setTo("U002");
      Value value1 = Value.newBuilder().add("createdOn", "2024-05-06").build();
      edge1.setValues(value1);
      edgeList.add(edge1);
      
      Edge edge2 = new Edge();
      edge2.setUUID(2l);
      edge2.setFrom("U002");
      edge2.setTo("U001");
      Value value2 = Value.newBuilder().add("createdOn", new Date(1715169600000l)).build();
      edge2.setValues(value2);
      edgeList.add(edge2);
      
      Response response = client.insertEdgesBatchBySchema(schema, edgeList, insertRequestConfig);
      System.out.println(response.getStatus().getErrorCode());
      // Response.InsertEdgesReply is null if InsertRequestConfig.silent is true
      System.out.println(response.getInsertEdgesReply());
      

      SUCCESS
      InsertResponse(idList=null, uuidList=[1, 2], errorItems={})
      

      insertNodesBatchAuto()

      Insère de nouveaux nodes d'un ou plusieurs schemas dans le graph actuel via gRPC. Les properties à l'intérieur des valeurs des nodes doivent être cohérentes avec celles définies dans la structure du schema correspondant.

      Paramètres :

      • List<Node>: La liste des objets Node à insérer.
      • InsertRequestConfig (Optionnel): Paramètres de configuration pour la requête.

      Renvoie :

      • Response: Résultat de la requête. Response.InsertNodesReply contient le rapport d'insertion lorsque InsertRequestConfig.silent est défini à faux.

      // Inserts two nodes into schema 'user' and one node into schema `product` in graphset 'lcc', prints error code and the insert reply
      
      InsertRequestConfig insertRequestConfig = new InsertRequestConfig();
      insertRequestConfig.setInsertType(Ultipa.InsertType.NORMAL);
      insertRequestConfig.setGraphName("lcc");
      insertRequestConfig.setSilent(false);
      
      List<Node> nodeList = new ArrayList<>();
      
      Node node1 = new Node();
      node1.setSchema("user");
      node1.setUUID(1l);
      node1.setID("U001");
      Value value1 = Value.newBuilder()
              .add("name", "Alice")
              .add("age", 18)
              .add("score", 65.32)
              //.add("birthday", "1993-05-04")
              //.add("birthday", new Date(736473600000l)) // Timestamp in milliseconds
              .add("birthday", LocalDateTime.of(1993,5,4,00,00))
              .add("location", new Point(23.63, 104.25))
              .add("profile", "abc")
              .add("interests", Arrays.asList("tennis", "violin"))
              .add("permissionCodes", new HashSet<>(Arrays.asList(2004, 3025, 1025)))
              .build();
      node1.setValues(value1);
      nodeList.add(node1);
      
      Node node2 = new Node();
      node2.setSchema("user");
      node2.setUUID(2l);
      node2.setID("U002");
      Value value2 = Value.newBuilder()
              .add("name", "Bob")
              .add("age", null)
              .add("score", null)
              .add("birthday", null)
              .add("location", null)
              .add("profile", null)
              .add("interests", null)
              .add("permissionCodes", null)
              .build();
      node2.setValues(value2);
      nodeList.add(node2);
      
      Node node3 = new Node();
      node3.setSchema("product");
      node3.setUUID(3l);
      node3.setID("P001");
      Value value3 = Value.newBuilder()
              .add("name", "Wireless Earbud")
              .add("price", 93.2f)
              .build();
      node3.setValues(value3);
      nodeList.add(node3);
      
      Response response = client.insertNodesBatchAuto(nodeList, insertRequestConfig);
      System.out.println(response.getStatus().getErrorCode());
      // Response.InsertNodesReply is null if InsertRequestConfig.silent is true
      System.out.println(response.getInsertNodesReply());
      

      SUCCESS
      InsertResponse(idList=[], uuidList=[3, 1, 2], errorItems={})
      

      insertEdgesBatchAuto()

      Insère de nouveaux edges d'un ou plusieurs schemas dans le graph actuel via gRPC. Les properties à l'intérieur des valeurs des edges doivent être cohérentes avec celles définies dans la structure du schema correspondant.

      Paramètres :

      • List<Edge>: La liste des objets Edge à insérer.
      • InsertRequestConfig (Optionnel): Paramètres de configuration pour la requête.

      Renvoie :

      • Response: Résultat de la requête. Response.InsertEdgesReply contient le rapport d'insertion lorsque InsertRequestConfig.silent est défini à faux.

      // Inserts two edges into schema 'follows' and one edge into schema 'purchased' in graphset 'lcc', prints error code and the insert reply
      
      InsertRequestConfig insertRequestConfig = new InsertRequestConfig();
      insertRequestConfig.setInsertType(Ultipa.InsertType.NORMAL);
      insertRequestConfig.setGraphName("lcc");
      insertRequestConfig.setSilent(false);
      
      List<Edge> edgeList = new ArrayList<>();
      
      Edge edge1 = new Edge();
      edge1.setSchema("follows");
      edge1.setUUID(1l);
      edge1.setFrom("U001");
      edge1.setTo("U002");
      Value value1 = Value.newBuilder().add("createdOn", "2024-05-06").build();
      edge1.setValues(value1);
      edgeList.add(edge1);
      
      Edge edge2 = new Edge();
      edge2.setSchema("follows");
      edge2.setUUID(2l);
      edge2.setFrom("U002");
      edge2.setTo("U001");
      Value value2 = Value.newBuilder().add("createdOn", new Date(1715169600000l)).build();
      edge2.setValues(value2);
      edgeList.add(edge2);
      
      Edge edge3 = new Edge();
      edge3.setSchema("purchased");
      edge3.setUUID(3l);
      edge3.setFrom("U002");
      edge3.setTo("P001");
      Value value3 = Value.newBuilder().add("qty", 1l).build();
      edge3.setValues(value3);
      edgeList.add(edge3);
      
      Response response = client.insertEdgesBatchAuto(edgeList, insertRequestConfig);
      System.out.println(response.getStatus().getErrorCode());
      // Response.InsertEdgesReply is null if InsertRequestConfig.silent is true
      System.out.println(response.getInsertEdgesReply());
      

      SUCCESS
      InsertResponse(idList=[], uuidList=[3, 1, 2], errorItems={})
      

      Suppression

      deleteNodes()

      Supprime les nodes qui répondent aux conditions données du graph actuel. Il est important de noter que la suppression d'un node entraîne la suppression de tous les edges qui y sont connectés.

      Paramètres :

      • String: La condition de filtrage pour spécifier les nodes à supprimer.
      • Integer (Optionnel): Le nombre maximum de nodes à supprimer ; ignorez ce paramètre ou définissez-le à -1 pour tout supprimer.
      • InsertRequestConfig (Optionnel): Paramètres de configuration pour la requête.

      Renvoie :

      • Response: Résultat de la requête. L'objet Response contient un alias nodes qui contient tous les nodes supprimés lorsque InsertRequestConfig.silent est défini à faux.

      // Deletes one @user nodes whose name is 'Alice' from graphset 'lcc', prints error code and information of the deleted nodes
      // All edges attached to the deleted node are deleted as well
      
      InsertRequestConfig insertRequestConfig = new InsertRequestConfig();
      insertRequestConfig.setInsertType(Ultipa.InsertType.NORMAL);
      insertRequestConfig.setGraphName("lcc");
      insertRequestConfig.setSilent(false);
      
      Response response = client.deleteNodes("@user.name == 'Alice'", 1, insertRequestConfig);
      System.out.println(response.getStatus().getErrorCode());
      // There is no alias in Response if InsertRequestConfig.silent is true
      List<Node> deletedNodes = response.alias("nodes").asNodes();
      for (Node node : deletedNodes) {
          System.out.println(node.toString());
      }
      

      SUCCESS
      Node(uuid=1, id=U001, schema=user, values={name=Alice})
      

      deleteEdges()

      Supprime les edges qui répondent aux conditions données du graph actuel.

      Paramètres :

      • String: La condition de filtrage pour spécifier les edges à supprimer.
      • Integer (Optionnel): Le nombre maximum d'edges à supprimer ; ignorez ce paramètre ou définissez-le à -1 pour tout supprimer.
      • InsertRequestConfig (Optionnel): Paramètres de configuration pour la requête.

      Renvoie :

      • Response: Résultat de la requête. L'objet Response contient un alias edges qui contient tous les edges supprimés lorsque InsertRequestConfig.silent est défini à faux.

      // Deletes all @purchased edges from graphset 'lcc', prints error code and information of the deleted edges
      
      InsertRequestConfig insertRequestConfig = new InsertRequestConfig();
      insertRequestConfig.setInsertType(Ultipa.InsertType.NORMAL);
      insertRequestConfig.setGraphName("lcc");
      insertRequestConfig.setSilent(false);
      
      Response response = client.deleteEdges("@purchased", insertRequestConfig);
      System.out.println(response.getStatus().getErrorCode());
      // There is no alias in Response if InsertRequestConfig.silent is true
      List<Edge> deletedEdges = response.alias("edges").asEdges();
      for (Edge edge : deletedEdges) {
          System.out.println(edge.toString());
      }
      

      SUCCESS
      Edge(uuid=3, fromUuid=2, toUuid=3, from=U002, to=P001, schema=purchased, values={})
      

      Exemple Complet

      package com.ultipa.www.sdk.api;
      
      import com.ultipa.Ultipa;
      import com.ultipa.sdk.connect.Connection;
      import com.ultipa.sdk.connect.conf.InsertRequestConfig;
      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 com.ultipa.sdk.data.Point;
      import java.time.LocalDateTime;
      import java.util.*;
      import java.util.List;
      
      public class Main {
          public static void main(String[] args) {
              // Configuration de la connexion
              UltipaConfiguration myConfig = UltipaConfiguration.config()
                  // URI example: .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);
                
                  // Configuration des requêtes d'insertion
                  InsertRequestConfig insertRequestConfig = new InsertRequestConfig();
                  insertRequestConfig.setInsertType(Ultipa.InsertType.NORMAL);
                  insertRequestConfig.setGraphName("lcc");
                  insertRequestConfig.setSilent(false);
                
                  // Insère deux nodes dans le schema 'user' et un node dans le schema `product` dans le graphset 'lcc', imprime le code d'erreur et la réponse d'insertion
                  List<Node> nodeList = new ArrayList<>();
      
                  Node node1 = new Node();
                  node1.setSchema("user");
                  node1.setUUID(1l);
                  node1.setID("U001");
                  Value value1 = Value.newBuilder()
                          .add("name", "Alice")
                          .add("age", 18)
                          .add("score", 65.32)
                          //.add("birthday", "1993-05-04")
                          //.add("birthday", new Date(736473600000l)) // Timestamp in milliseconds
                          .add("birthday", LocalDateTime.of(1993,5,4,00,00))
                          .add("location", new Point(23.63, 104.25))
                          .add("profile", "abc")
                          .add("interests", Arrays.asList("tennis", "violin"))
                          .add("permissionCodes", new HashSet<>(Arrays.asList(2004, 3025, 1025)))
                          .build();
                  node1.setValues(value1);
                  nodeList.add(node1);
      
                  Node node2 = new Node();
                  node2.setSchema("user");
                  node2.setUUID(2l);
                  node2.setID("U002");
                  Value value2 = Value.newBuilder()
                          .add("name", "Bob")
                          .add("age", null)
                          .add("score", null)
                          .add("birthday", null)
                          .add("location", null)
                          .add("profile", null)
                          .add("interests", null)
                          .add("permissionCodes", null)
                          .build();
                  node2.setValues(value2);
                  nodeList.add(node2);
      
                  Node node3 = new Node();
                  node3.setSchema("product");
                  node3.setUUID(3l);
                  node3.setID("P001");
                  Value value3 = Value.newBuilder()
                          .add("name", "Wireless Earbud")
                          .add("price", 93.2f)
                          .build();
                  node3.setValues(value3);
                  nodeList.add(node3);
      
                  Response response = client.insertNodesBatchAuto(nodeList, insertRequestConfig);
                  System.out.println(response.getStatus().getErrorCode());
                  // Response.InsertNodesReply is null if InsertRequestConfig.silent is true
                  System.out.println(response.getInsertNodesReply()); 
              } catch (InterruptedException e) {
                  throw new RuntimeException(e);
              } finally {
                  if (driver != null) {
                      driver.close();
                  }
              }
          }
      }
      
      Please complete the following information to download this book
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写