Библиотека и CLI на Go для разбора SQL-диалекта ClickHouse в типизированный AST, а также форматирования и улучшения читаемости запросов.
JSQLParser/JSqlParser
Java-парсер SQL, который преобразует SQL-операторы в дерево Java-объектов для обхода и позволяет выводить их обратно в виде SQL.
- Звёзды
- 5,975
- Форки
- 1,446
- Открытые issues
- 8
- Последний коммит
- позавчера
Что это?
JSqlParser разбирает SQL-оператор в иерархию Java-классов, которую можно обходить с помощью паттерна Visitor, изменять и выводить обратно в виде SQL. Парсер не привязан к конкретной RDBMS: одна грамматика охватывает такие диалекты, как MySQL, PostgreSQL, Oracle, SQL Server, BigQuery, Snowflake, DuckDB и SQLite; для нестандартных случаев предусмотрены настройки диалектов.
Помимо разбора, проект умеет определять, возвращает ли оператор строки или изменяет данные, — это помогает реализовать защиту от записи или выбирать между выполнением запроса и обновлением данных. Операторы также можно создавать на Java с помощью fluent API и сериализовать в SQL. Поддержка синтаксиса Piped SQL находится в разработке.
Для работы требуется JDK 11. Пакет распространяется через Maven Central; вместо старого upstream-релиза рекомендуется использовать активно поддерживаемые сборки Manticore.
Ключевые возможности
- 01Разбирает SQL в дерево Java-объектов, которое можно обходить с помощью паттерна Visitor
- 02Преобразует объектную модель обратно в текст SQL
- 03Поддерживает множество диалектов, включая MySQL, PostgreSQL, Oracle, SQL Server и BigQuery
- 04Определяет, возвращают ли операторы строки или изменяют данные
- 05Позволяет создавать SQL-операторы на Java с помощью fluent API
Сценарии использования
- Изменение или аудит SQL-запросов в Java-приложении перед выполнением
- Блокировка операторов, изменяющих данные, при работе с подключениями к БД только для чтения
- Извлечение таблиц и столбцов, на которые ссылается запрос, для анализа или инструментов отслеживания происхождения данных
- Генерация SQL программно из Java-кода
Быстрый старт
- 1
Добавьте зависимость для сборки Manticore в pom.xml Maven
- 2
Разберите SQL-оператор с помощью CCJSqlParserUtil.parse и обойдите полученное дерево
Что важно знать
- Для сборки из исходного кода требуется toolchain JDK 17.
- В README рекомендуется использовать сборки Manticore, поскольку upstream-релиз в Maven Central значительно старше.
В подборках
Темы
Частые вопросы
- Что такое JSqlParser?
- Java-парсер SQL, который преобразует 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 — 5 нояб. 2026 г..
- Для чего можно использовать JSqlParser?
- Изменение или аудит SQL-запросов в Java-приложении перед выполнением Блокировка операторов, изменяющих данные, при работе с подключениями к БД только для чтения Извлечение таблиц и столбцов, на которые ссылается запрос, для анализа или инструментов отслеживания происхождения данных Генерация SQL программно из Java-кода
- Как установить JSqlParser?
- Добавьте зависимость для сборки Manticore в pom.xml Maven Разберите SQL-оператор с помощью CCJSqlParserUtil.parse и обойдите полученное дерево
- Где скачать JSqlParser?
- Исходный код и инструкции по установке — на GitHub: https://github.com/JSQLParser/JSqlParser
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Бесплатный редактор схем баз данных в браузере: позволяет строить ER-диаграммы и генерировать SQL-скрипты без регистрации.
Бесплатный нативный клиент для баз данных с открытым исходным кодом на macOS и iOS: поддерживает SQL- и NoSQL-БД, встроенный AI-чат и MCP-сервер.
Терминальный клиент (TUI) для PostgreSQL, MySQL, SQLite, DuckDB и других баз данных с сочетаниями клавиш в стиле Vim.
Нативная IDE для работы с базами данных в macOS, Windows и Linux: поддерживает PostgreSQL, MySQL, SQLite, Redis, MongoDB, SQL Server и ClickHouse, включает MCP-сервер и AI-чат.
Клиент для работы с базами данных и MCP-сервер на базе ИИ для компьютеров и веба; поддерживает Postgres, MySQL, MariaDB, SQL Server, ClickHouse и SQLite.