uql()
方法及相关类:
Response uql(String uql)
Response uql(String uql, RequestConfig requestConfig)
使用 uql()
进行请求时会返回结果类 Response。
Response 的字段:
字段 | 类型 | 说明 |
---|---|---|
aliases | List<Alias> | return 返回的数据的别名和类型 |
items | Map<String, DataItem> | return 返回的数据,每个别名对应的 DataItem 类 |
insertNodesReply | Ultipa.InsertNodesReply | 批量插入点返回的结果 |
insertEdgesReply | Ultipa.InsertEdgesReply | 批量插入边返回的结果 |
exportData | ExportData | 导出数据的结果 |
explainPlan | ExplainPlan | UQL 语句解析树 |
status | Status | Ultipa Server 返回的执行状态 |
statistic | Statistic | 执行的统计信息,包含执行时间、影响点边数等 |
Response 的方法:
方法 | 类型 | 说明 |
---|---|---|
get(int index) | DataItem | 按下标获取查询结果中的某一个返回值(DataItem 类) |
alias(String name) | DataItem | 按别名获取查询结果中的某一个返回值(DataItem 类) |
返回值的别名类型有 NODE、EDGE、PATH 等,使用 DataItem 类的相应的方法可以将这些类型转为相应的类,详见下一章《返回值的结构化》。
get()
示例:发送语句 return now() as currentTime, pi() as PI
,按下标取出第一个返回值,转为 json 并输出
public class Main {
public static void main(String[] args) {
// 创建名为 conn 的连接,此部分代码省略
Response res = conn.uql("return now() as currentTime, pi() as PI");
System.out.println(res.get(0).toJson());
}
}
输出:
["{\"type\":\"DATETIME\",\"values\":[\"Dec 13, 2022 7:39:38 AM\"],\"name\":\"currentTime\"}"]
alias()
示例:发送语句 return now() as currentTime, pi() as PI
,按别名取出第二个返回值,转为 json 并输出
public class Main {
public static void main(String[] args) {
// 创建名为 conn 的连接,此部分代码省略
Response res = conn.uql("return now() as currentTime, pi() as PI");
System.out.println(res.alias("PI").toJson());
}
}
输出:
["{\"type\":\"DOUBLE\",\"values\":[3.14159265358979],\"name\":\"PI\"}"]