Repolode
JSQLParser

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. 1

    Добавьте зависимость для сборки Manticore в pom.xml Maven

  2. 2

    Разберите SQL-оператор с помощью CCJSqlParserUtil.parse и обойдите полученное дерево

Что важно знать

  • Для сборки из исходного кода требуется toolchain JDK 17.
  • В README рекомендуется использовать сборки Manticore, поскольку upstream-релиз в Maven Central значительно старше.

В подборках

Темы

#sql#parser#java#ast#database#sql-parser#visitor-pattern#hierarchy#jsqlparser#mysql

Частые вопросы

Что такое 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-скрипты без регистрации.

Инструменты разработчика#database-design#erd#sql
40,3 тыс.+77 за неделю3,4 тыс.JavaScriptAGPL-3.0Активно поддерживаетсяОбновлён 24 часа назад