23

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

我想知道是否有任何 Java 库可用于验证 SQL 查询的语法。我知道与常见的 SQL 规范有很多偏差,所以它可能只适用于 SQL:2006 之类的东西,但这当然就足够了。

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

谢谢!

4

7 回答 7

8

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

或者按照建议,使用SQuirreL SQL Client等开源 SQL 实用程序的解析器。

于 2008-09-26T20:11:19.973 回答
5

通用 SQL Parser可以进行离线 SQL 语法检查。支持的数据库:Oracle、DB2、MySQL、SQL Server、Teradata 和 PostgreSQL。

于 2011-12-27T14:39:50.760 回答
4

我不认为有这样的图书馆。SQL 语法有太多的派生词。

一个可能的解决方案是使用像SmallSQL这样的开源纯 Java DBMS 的一部分。在这个项目中,您可以创建SQLParser的实例。可以很容易地删除所需的连接引用。

于 2008-09-26T19:57:54.517 回答
2

试试JSQL 解析器

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

于 2010-05-20T11:40:51.293 回答
1

您也许可以从HSQL中提取解析代码,它是 java 和开源的。

于 2008-09-26T19:59:07.757 回答
1

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

您可以尝试重用它从org.apache.derby.impl.sql.

于 2008-09-26T20:19:53.900 回答
0

使用JOOQ,您将永远不会在 SQL 中出错。Java 编译器会处理这个问题。

于 2011-04-11T18:38:14.703 回答