我不确定这是否存在,所以我想我会挖掘别人的智慧..

我想知道是否有可用于验证SQL查询语法的Java库。我知道有很多偏离常见的SQL规范,所以它可能只会对SQL:2006这样的东西起作用,但这肯定就足够了。

我的目标是将其用于单元测试目的,而无需尝试针对数据库执行。我知道它的用途有限,但它仍然有用。

谢谢!

有帮助吗?

解决方案

我认为没有这样的图书馆。 SQL语法有太多的衍生物。

一种可能的解决方案是使用开源纯Java DBMS的一部分,如 SmallSQL 。在此项目中,您可以创建 SQLParser 。可以非常轻松地删除对连接所需的引用。

其他提示

也许你可以使用Antlr,它有许多 SQL语法 Java库,以及各种Java IDE的插件。

或者根据建议,使用开源SQL实用程序的解析器,如 SQuirreL SQL客户

常规SQL解析器可以执行脱机SQL语法检查。支持的数据库:Oracle,DB2,MySQL,SQL Server,Teradata和PostgreSQL。

尝试 JSQL解析器

除了验证之外,您还可以获得有意义的查询表示。
例如,这允许您仅接受“某些”命令;处理结果 查询,“美化”它等等。

您可以从 HSQL 中提取解析代码,这是java和开源。

Apache Derby 是一个完全用Java实现的开源SQL数据库,可在 Apache License,Version 2.0 。它以前称为 IBM Cloudscape

您可以尝试从 org.apache.derby.impl.sql 重用它的解析代码。

使用 JOOQ ,您永远不会在SQL中犯错误。 Java编译器将负责这一点。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top