全部查询方法均支持使用可选配置参数(RequestConfig或InsertRequestConfig)来自定义向数据库发出的请求。您可使用该参数指定各种设置,如图集名称、超时时间和主机,根据自身需求定制请求。
RequestConfig
RequestConfig用来定义向数据库发送非插入请求时所需的配置。
public class Main {
    public static void main(String[] args) {
        UltipaConfiguration myConfig = UltipaConfiguration.config()
            // 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 {
            driver = new UltipaClientDriver(myConfig);
            Connection client = driver.getConnection();
            // 指定图集amz为目标图集并使用集群的主节点
            RequestConfig requestConfig = new RequestConfig();
            requestConfig.setGraphName("amz");
            requestConfig.setUseMaster(true);
        
            Response response = client.uql("find().nodes() as nodes return nodes{*} limit 10", requestConfig);
            List<Node> nodeList = response.alias("nodes").asNodes();
            for(int i = 0; i < nodeList.size(); i ++){
                System.out.println("node " + i + " is: " + nodeList.get(i).toJson());
            }
        } finally {
            if (driver != null) {
                driver.close();
            }
        }
    }
}
RequestConfig包含如下字段:
| 字段 | 类型 | 默认 | 描述 | 
|---|---|---|---|
| graphName | String | 待使用的图集;若未设定,则为建立连接时配置的 defaultGraph | |
| timeout | Integer | 15 | 请求超时时间,单位为秒;若未设定,则为建立连接时配置的 timeout | 
| host | String | 发送请求至指定的主机节点;若未设定,则发送至任意主机节点 | |
| useMaster | Boolean | false | 若设定为true,则发送请求至主节点以确保一致性读取 | 
| threadNum | Integer | 线程数 | 
InsertRequestConfig
InsertRequestConfig用来定义向数据库发送插入或删除数据请求时所需的配置。
public class Main {
    public static void main(String[] args) {
        UltipaConfiguration myConfig = UltipaConfiguration.config()
            // 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;
        Connection client;
        try {
            driver = new UltipaClientDriver(myConfig);
            client = driver.getConnection();
            // 指定图集test为目标图集,并将插入模式设置为OVERWRITE
            InsertRequestConfig insertRequestConfig = new InsertRequestConfig();
            insertRequestConfig.setGraphName("test");
            insertRequestConfig.setInsertType(Ultipa.InsertType.OVERWRITE);
        
            List<Node> nodeList = new ArrayList<>();
            Node node1 = new Node();
            node1.setSchema("client");
            node1.setID("CLIENT00001");
            nodeList.add(node1);
            Node node2 = new Node();
            node2.setSchema("card");
            node2.setID("CARD00004");
            nodeList.add(node2);
          
            client.insertNodesBatchAuto(nodeList, insertRequestConfig);
        } finally {
            if (driver != null) {
                driver.close();
            }
        }
    }
}
InsertRequestConfig包含如下字段:
| 字段 | 类型 | 默认 | 描述 | 
|---|---|---|---|
| graphName | String | 待使用的图集;若未设定,则为建立连接时配置的 defaultGraph | |
| timeout | Integer | 15 | 请求超时时间,单位为秒;若未设定,则为建立连接时配置的 timeout | 
| host | String | 发送请求至指定的主机节点;若未设定,则发送至任意主机节点 | |
| useMaster | Boolean | false | 若设定为true,则发送请求至主节点以确保一致性读取 | 
| insertType | Ultipa.InsertType | NORMAL | 插入模式,包括 NORMAL,UPSERT和OVERWRITE | 
| silent | Boolean | true | 插入成功后,是否保持静默,即是否返回插入的节点或边 | 
| createNodeIfNotExist | Boolean | false | 若边的终点不在图集里,是否要创建对应的点 | 
