これが存在するかどうかさえわからないので、他の人の知恵を借りようと思いました..
SQL クエリの構文を検証するために使用できる Java ライブラリがあるかどうか疑問に思っていました。一般的な SQL 仕様からの逸脱が多いことはわかっているため、おそらく SQL:2006 のようなものに対してのみ機能しますが、それで十分です。
私の目標は、DB に対して実行を試みる必要なく、単体テストの目的でこれを使用することです。用途が限られていることは承知していますが、それでも有用です。
ありがとう!
おそらくAntlrを使用できます。これには、さまざまなJava IDE用のプラグインだけでなく、多数のSQL文法とJavaライブラリがあります。
または、アドバイスに従って、 SQuirreLSQLClientなどのオープンソースSQLユーティリティのパーサーを使用します。
一般的な SQL パーサーは、オフラインで SQL 構文チェックを行うことができます。サポートされているデータベース: Oracle、DB2、MySQL、SQL Server、Teradata、および PostgreSQL。
JSQL パーサーを試してください。
検証に加えて、クエリの意味のある表現を取得します。
これにより、たとえば、「特定の」コマンドのみを受け入れることができます。
クエリを操作したり、「整形」したりします。
Java でオープン ソースのHSQLから解析コードを抽出できる場合があります。
Apache Derbyは、完全に Java で実装されたオープン ソースの SQL データベースであり、Apache License, Version 2.0の下で利用できます。以前はIBM Cloudscapeと呼ばれていました。
からの解析コードを再利用してみてくださいorg.apache.derby.impl.sql。
JOOQを使用すると、SQL で間違いを犯すことはありません。Javaコンパイラがそれを処理します。