Frage

Ich bin mir nicht sicher, ob dies überhaupt existiert oder nicht, so dachte ich, ich würde die Weisheit andere tippen ..

Ich habe mich gefragt, ob es irgendwelche Java-Bibliotheken gibt, die verwendet werden können, eine SQL-Abfrage Syntax zu validieren. Ich weiß, dass es viele Abweichungen von allgemeiner SQL-Spezifikation ist, so wäre es wahrscheinlich nur funktionieren, gegen so etwas wie SQL: 2006, aber das würde sicherlich ausreichen.

Mein Ziel ist es, für Unit-Testzwecke zu verwenden, ohne dass die Ausführung gegen die DB zu versuchen. Ich weiß, es ist nur von begrenztem Nutzen, aber es wäre immer noch nützlich sein.

Danke!

War es hilfreich?

Lösung

Ich glaube nicht, es gibt solche Bibliotheken. Die SQL-Syntax hat zu viele Derivate.

Eine mögliche Lösung wäre es, Teile einer Open-Source-reinen Java-DBMS zu verwenden, wie SmallSQL . In diesem Projekt können Sie eine Instanz des

Andere Tipps

Vielleicht können Sie verwenden Antlr, hat es eine Reihe von SQL Grammatiken und Java-Bibliothek sowie Plugins für verschiedene Java IDEs.

oder wie empfohlen, verwenden Sie den Parser von Open-Source-SQL-Dienstprogramme wie SQuirreL SQL Client .

Allgemeine SQL Parser kann tun offline SQL-Syntax-Check . Unterstützte Datenbanken:. Oracle, DB2, MySQL, SQL Server, Teradata und PostgreSQL

Versuchen Sie JSQL Parser .

Neben der Validierung erhalten Sie eine aussagekräftige Darstellung der Abfrage.
So können Sie zum Beispiel nur akzeptieren „bestimmte“ Befehle; manipulieren
die Abfrage "prettify" es, etc.

Sie könnten in der Lage sein, den Parsing-Code zu extrahieren von HSQL , die Java und Open Source.

Apache Derby eine Open-Source-SQL-Datenbank vollständig in Java implementiert ist und unter dem Apache License, Version 2.0 . Es war früher bekannt als IBM Cloudscape .

Sie können versuchen, es Parsing-Code von org.apache.derby.impl.sql wieder zu verwenden.

Mit jOOQ Sie werden nie einen Fehler in SQL machen. Java-Compiler darum kümmern wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top