8. DataQL 引擎
DataQL 引擎将脚本编译为 QIL 并执行,可直接嵌入 Java 应用。通过 HostConfiguration → QueryManager → QueryBuilder → Query 创建查询,在执行时传入参数。
编译与执行
脚本先解析为查询模型,再编译为 QIL。执行器运行指令,按需调用 UDF,并返回查询结果。

引入依赖
pom.xml
<dependency>
<groupId>net.hasor</groupId>
<artifactId>dataql-engine</artifactId>
<version>5.0.0</version>
</dependency>
执行第一个查询
QueryExample.java
import java.util.Map;
import net.hasor.dataql.host.HostConfiguration;
import net.hasor.dataql.host.Query;
import net.hasor.dataql.host.QueryManager;
import net.hasor.dataql.kernel.QueryResult;
public class QueryExample {
public static void main(String[] args) throws Exception {
HostConfiguration host = new HostConfiguration();
QueryManager manager = new QueryManager(host);
Query query = manager.newBuilder().createQuery("return ${name};");
QueryResult result = query.execute(Map.of("name", "DataQL"));
System.out.println(result.getData().unwrap());
}
}
脚本通过 ${name} 读取传入的参数,result.getData().unwrap() 将查询结果转为 Java 对象。运行后输出:
DataQL
使用指引
- 独立使用:传入参数、复用编译结果并处理执行结果。
- 数据模型:转换 Java 数据、读取结果并处理二进制资源。
- 核心接口:了解配置、构建器、查询和结果对象的职责。
- SQL 执行器:引入 SQL 执行能力并配置数据库连接。
- JSR-223:通过 JDK 脚本接口执行和预编译查询。
- QIL 指令参考:需要查看编译结果时查阅指令说明。
函数、片段、查找器和作用域的实现见引擎扩展。