ClickHouse方言のSQLを型付きASTに解析し、クエリの整形やフォーマットを行うGoライブラリ兼CLIです。
JSQLParser/JSqlParser
SQL文をたどれるJavaオブジェクトのツリーに変換し、SQLテキストに戻せるJava製SQLパーサーです。
- スター
- 5,975
- フォーク
- 1,446
- 未解決の Issue
- 8
- 最終コミット
- 一昨日
これは何?
JSqlParserはSQL文をJavaクラスの階層構造に解析します。Visitorパターンでたどったり、書き換えたり、SQLとして出力したりできます。RDBMSに依存せず、MySQL、PostgreSQL、Oracle、SQL Server、BigQuery、Snowflake、DuckDB、SQLiteなどの方言をひとつの文法で扱い、特殊なケースには方言オプションを用意しています。
解析に加えて、文が行を返すかデータを変更するかで分類できます。これにより、読み取り専用のガードを実装したり、クエリ実行と更新実行を選び分けたりできます。fluent APIを使ってJavaから文を組み立て、SQLテキストにシリアライズすることもできます。Piped SQL構文への対応は開発中です。
JDK 11の実行環境が必要で、Maven Centralから配布されています。現在も積極的にメンテナンスされているManticoreビルドが、古いupstreamリリースより推奨されています。
主な機能
- 01SQLをVisitorパターンでたどれるJavaオブジェクトのツリーに解析する
- 02オブジェクトモデルをSQLテキストに変換する
- 03MySQL、PostgreSQL、Oracle、SQL Server、BigQueryなど、多くの方言に対応する
- 04文が行を返すか、データを変更するかで分類する
- 05fluent APIを使ってJavaからSQL文を構築する
ユースケース
- Javaアプリケーションで実行前にSQLクエリを書き換えたり監査したりする
- 読み取り専用のデータベース接続でデータ変更文をブロックする
- 分析やデータリネージツール向けに、クエリが参照するテーブルやカラムを抽出する
- JavaコードからSQLをプログラムで生成する
クイックスタート
- 1
Maven の pom.xml に Manticore のビルド依存関係を追加します
- 2
CCJSqlParserUtil.parse で SQL 文を解析し、生成されたツリーをたどります
使う前に知っておきたいこと
- ソースからビルドするには JDK 17 のツールチェーンが必要です。
- 上流の Maven Central リリースはかなり古いため、README では Manticore ビルドが推奨されています。
収録されている特集
トピック
よくある質問
- JSqlParser とは?
- SQL文をたどれるJavaオブジェクトのツリーに変換し、SQLテキストに戻せるJava製SQLパーサーです。 JSqlParserはSQL文をJavaクラスの階層構造に解析します。Visitorパターンでたどったり、書き換えたり、SQLとして出力したりできます。RDBMSに依存せず、MySQL、PostgreSQL、Oracle、SQL Server、BigQuery、Snowflake、DuckDB、SQLiteなどの方言をひとつの文法で扱い、特殊なケースには方言オプションを用意しています。
- JSqlParser は無料で使えますか?ライセンスは?
- JSqlParser は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- JSqlParser は今もメンテナンスされていますか?
- 活発にメンテナンス中。JSqlParser の最終コミットは 2026年11月5日 です。
- JSqlParser は何に使えますか?
- Javaアプリケーションで実行前にSQLクエリを書き換えたり監査したりする 読み取り専用のデータベース接続でデータ変更文をブロックする 分析やデータリネージツール向けに、クエリが参照するテーブルやカラムを抽出する JavaコードからSQLをプログラムで生成する
- JSqlParser のインストール方法は?
- Maven の pom.xml に Manticore のビルド依存関係を追加します CCJSqlParserUtil.parse で SQL 文を解析し、生成されたツリーをたどります
- JSqlParser はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/JSQLParser/JSqlParser
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
アカウント不要の無料ブラウザベースのデータベーススキーマエディター。ER図を作成し、SQLスクリプトを生成できます。
SQL・NoSQLデータベースに対応し、AIチャットとMCPサーバーを搭載した、macOS・iOS向けの無料オープンソースネイティブDBクライアント。
vim風キーバインドを備えた、PostgreSQL、MySQL、SQLite、DuckDBなどに対応するターミナル(TUI)データベースクライアント。
PostgreSQL、MySQLなどに対応したmacOS・Windows・Linux向けネイティブDB IDE。MCPサーバーとAIチャットを搭載。
Postgres、MySQL、MariaDB、SQL Server、ClickHouse、SQLiteに対応した、デスクトップ・Web向けのAI搭載データベースクライアント兼MCPサーバー。