全部查询方法均支持使用可选配置参数(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 | 若边的终点不在图集里,是否要创建对应的点 |