在Java中查询类似DSL的机制以进行运行时sql绑定
Posted
技术标签:
【中文标题】在Java中查询类似DSL的机制以进行运行时sql绑定【英文标题】:Query DSL-like mechanism in Java for runtime sql binding 【发布时间】:2015-08-10 19:19:40 【问题描述】:我正在寻找一个 Java 库,它针对 HQL 提供类似 Query DSL 的功能,但仅适用于运行时 SQL 绑定。特别是,我只需要一个 SQL 生成器,这样我就不必为连接、窗口子句等建模......
我们需要查询的架构仅在运行时可用,因此我们无法针对它构建 ORM。
例如,我希望能够写:
int count = from("Account").count();
代替:
string statement = "SELECT COUNT(1) FROM Account";
如果它也支持窗口子句将是有益的。
如果外面没有这样的东西,我就自己动手了。
提前致谢!
【问题讨论】:
我不确定构建 SQL 查询(包括窗口函数)与 HQL 有何关系,但如果您真的只是在寻找 SQL 构建器,那么 Stack Overflow 上已经有其他问题了:@ 987654321@,***.com/questions/370818/…,***.com/questions/22802323/runtime-sql-query-builder。为什么提到 HQL? HQL 因为那是我正在使用的 SQL 的变体。 【参考方案1】:这是此答案的副本: Runtime SQL Query Builder
我假设 QueryDSL 和 JOOQ 仅依赖于基于 QueryDSL 中文档的模式生成,但上面的答案让我正确。
谢谢卢卡斯。
【讨论】:
仔细查看 JOOQ 文档,它不支持 Hive。我需要查看 QueryDSL 以查看它是否支持我的用例。我不相信它,因为它似乎依赖于代码生成...... 您能否将自己的答案标记为正确以表明问题已解决?以上是关于在Java中查询类似DSL的机制以进行运行时sql绑定的主要内容,如果未能解决你的问题,请参考以下文章
如何在 shell 脚本中运行 SQL 查询时获得类似 SQLPLUS 的输出
Android Gradle 插件Gradle 构建机制 ② ( Groovy 语言 DSL 特性 | settings.gradle 配置文件解析 | 配置子模块工程目录 | 顶层配置 )