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.

相关推荐
Nturmoils8 小时前
集中式与分布式怎么选:从订单读写看 KingbaseES 的架构边界
数据库
xiaomuzuirenzhen8 小时前
大专电子商务从事电商运营分析师需要考证吗?
大数据·数据库
翔云12345610 小时前
RocksDB中,客户端每写入一次数据,需要访问几次磁盘
运维·数据库·mysql
DevOpenClub10 小时前
职教高考控制线 API:招生类别枚举、筛选与空分数含义
java·数据库·高考
GeW11 小时前
新质生产力路线图解读:数据库性能优化与Linux调优专场
linux·数据库
在多学一点13 小时前
MYSQL第二次作业
android·数据库·mysql
Risehuxyc14 小时前
Microsoft.Data.Sqlite体验
数据库·sqlite
骑着蜗牛撵大象32714 小时前
MySQL 8.0 迁移后 SQL 变慢:执行计划里 3 类被忽略的成本差异
android·数据库·sql·mysql·优化器·执行计划
ZENERGY-众壹15 小时前
告警风暴怎么压?100MW 电站监控平台告警引擎架构复盘
数据库·架构·iot·电站监控
zhengfei61116 小时前
Go-fastdfs /reload 未授权访问: 有效PoC
数据库·sql