JQuick-SQL 快速开始:注册内存表并执行查询

JQuick-SQL 快速开始:注册内存表并执行查询

Meta 描述:通过可直接改编的 Java 示例使用 JQuickSQL.embedded、JQuickColumnMeta、JQuickRow 与 registerTable 完成首个 jquick-sql 查询。

标签:jquick-sql 快速开始、JQuickSQL.embedded、registerTable、JQuickRow、Java SQL 查询、轻量级 SQL 引擎

官网示例:

前言

jquick-sql 的首个查询不依赖数据库服务。你需要准备列元数据、行对象,注册为表,再用 SQL 得到 JQuickDataSet。这是验证 Java 跨库查询上游数据集接入的基础步骤。

创建嵌入式引擎

JQuickSQL.embedded() 会启用嵌入式模式。资源释放必须放在 finally 中,确保 Worker 与协调器被关闭。

定义列与行

JQuickColumnMeta 的构造参数依次是列名、Java 类型、表别名/表名;JQuickRow 使用列名作为 key:

java 复制代码
List<JQuickColumnMeta> columns = Arrays.asList(
    new JQuickColumnMeta("id", Integer.class, "users"),
    new JQuickColumnMeta("name", String.class, "users"),
    new JQuickColumnMeta("age", Integer.class, "users")
);
JQuickRow alice = new JQuickRow();
alice.put("id", 1);
alice.put("name", "Alice");
alice.put("age", 25);

注册并查询

java 复制代码
JQuickSQL sql = JQuickSQL.embedded();
try {
    List<JQuickRow> rows = Arrays.asList(alice);
    sql.registerTable("users", columns, rows);
    JQuickDataSet result = sql.execute(
        "SELECT id, name FROM users WHERE age >= 25"
    );
    result.printTable();
    System.out.println(result.size());
} finally {
    sql.shutdown();
}

结果使用与边界

结果是 JQuickDataSet,可 printTable()、size() 或从行列数据继续处理。JQuickDataSet 非线程安全;如果多个线程使用查询结果,应由调用方隔离或同步。此过程并未创建 JDBC 连接,数据必须已经注册。

常见问题

**列的第三个参数能随意填写吗?**不能;若 SQL 使用表别名,必须与列元数据的别名匹配。

**是否支持多行?**支持,向 registerTable 传入 List<JQuickRow>。

**为什么一定要 shutdown?**嵌入式 Worker 会占用本地端口和执行资源。

总结与拓展

先通过内存表验证 SQL,再将业务侧数据标准化为列元数据与行数据,是使用 Java 分布式 SQL 查询引擎的稳健路径。

Core Advantage

A small Java API turns in-memory rows into queryable datasets.

Applicable Scenarios

Unit tests, offline reports, rule checks, and embedded service analytics.

相关推荐
ss2732 小时前
PG实战笔记 | 09 PostgreSQL psql客户端基本操作
数据库·笔记·postgresql
电商API_180079052472 小时前
反向海淘多币种结算:汇率该在哪个时点被冻结
java·开发语言·数据库·跨境电商·1688 api
搞AI的金鱼3 小时前
skill agent workflow的区别
数据库
墨子夕3 小时前
创新的潮汐——从科学发现到资本周期的百年规律(第二卷)
大数据·数据库·人工智能
Y3815326623 小时前
印度电商数据采集教程:用 SerpBase 查 Flipkart/Myntra/Ajio 商品(附代码)
数据库·python
企业数字化笔记4 小时前
多租户配额怎么控制?用量口径、并发预留与超额处理的实现方法
java·数据库·spring boot
roman_日积跬步-终至千里4 小时前
【数据Agent论文·查询与语义|06】RAT-SQL:怎样把问题、表和字段真正关联起来?
数据库·sql·数据分析
盟接之桥4 小时前
盟接之桥谈线束数字化-按单入按单出:线束企业库存管理的破局之道
大数据·前端·网络·数据库·人工智能·制造
Nturmoils4 小时前
数据集成软件 KFS:多套业务库汇聚时,先把来源和口径理清
数据库