23

これが存在するかどうかさえわからないので、他の人の知恵を借りようと思いました..

SQL クエリの構文を検証するために使用できる Java ライブラリがあるかどうか疑問に思っていました。一般的な SQL 仕様からの逸脱が多いことはわかっているため、おそらく SQL:2006 のようなものに対してのみ機能しますが、それで十分です。

私の目標は、DB に対して実行を試みる必要なく、単体テストの目的でこれを使用することです。用途が限られていることは承知していますが、それでも有用です。

ありがとう!

4

7 に答える 7

8

おそらくAntlrを使用できます。これには、さまざまなJava IDE用のプラグインだけでなく、多数のSQL文法Javaライブラリがあります。

または、アドバイスに従って、 SQuirreLSQLClientなどのオープンソースSQLユーティリティのパーサーを使用します。

于 2008-09-26T20:11:19.973 に答える
5

一般的な SQL パーサーは、オフラインで 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

Java でオープン ソースのHSQLから解析コードを抽出できる場合があります。

于 2008-09-26T19:59:07.757 に答える
1

Apache Derbyは、完全に Java で実装されたオープン ソースの SQL データベースであり、Apache License, Version 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 に答える