我不确定这是否存在,所以我想我会挖掘别人的智慧..
我想知道是否有可用于验证SQL查询语法的Java库。我知道有很多偏离常见的SQL规范,所以它可能只会对SQL:2006这样的东西起作用,但这肯定就足够了。
我的目标是将其用于单元测试目的,而无需尝试针对数据库执行。我知道它的用途有限,但它仍然有用。
谢谢!
答案 0 :(得分:7)
也许您可以使用Antlr,它有许多SQL grammars和Java library,以及各种Java IDE的插件。
或者根据建议,使用开源SQL实用程序的解析器,如SQuirreL SQL Client。
答案 1 :(得分:5)
General SQL Parser可以offline SQL syntax check。支持的数据库:Oracle,DB2,MySQL,SQL Server,Teradata和PostgreSQL。
答案 2 :(得分:3)
我认为没有这样的图书馆。 SQL语法有太多的衍生物。
一种可能的解决方案是使用开源纯Java DBMS的一部分,如SmallSQL。在此项目中,您可以创建SQLParser的实例。可以非常轻松地删除对连接所需的引用。
答案 3 :(得分:2)
尝试JSQL parser。
除了验证之外,您还可以获得有意义的查询表示
例如,这允许您只接受“某些”命令;操纵
查询,“美化”它等等。
答案 4 :(得分:1)
您可以从HSQL中提取解析代码,这是java和开源。
答案 5 :(得分:1)
Apache Derby是一个完全用Java实现的开源SQL数据库,可在Apache License, Version 2.0下使用。它以前称为IBM Cloudscape。
您可以尝试重用org.apache.derby.impl.sql
中的解析代码。
答案 6 :(得分:0)
使用JOOQ,您永远不会在SQL中犯错误。 Java编译器将负责这一点。