Поиск встраиваемой программы изящного форматирования SQL или [закрытого] reformatter

Если вы хотите использовать механизмы кэширования, например Redis или Memcached , возможно, выбор DALMP может быть выбран. Он использует чистый MySQLi . Проверьте это: Уровень абстракции базы данных DALMP для MySQL с использованием PHP.

Кроме того, вы можете «подготовить» свои аргументы перед подготовкой своего запроса, чтобы вы могли создавать динамические запросы и в конце имеют полностью подготовленный запрос. Уровень абстракции базы данных DALMP для MySQL с использованием PHP.

29
задан Bhargav Rao 5 February 2019 в 02:12
поделиться

6 ответов

ОБНОВЛЕНИЕ 2:

org.hibernate.jdbc.util.BasicFormatterImpl был перемещен в выпуск 4.0. Это теперь расположено в: org.hibernate.engine.jdbc.internal.BasicFormatterImpl.

ОБНОВЛЕНИЕ 1:

Технология идет на. Как отмечено Alex, org.hibernate.pretty.Formatter больше не существует с версии 3.3.2. GA. Замена org.hibernate.jdbc.util.BasicFormatterImpl:

String formattedSQL = new BasicFormatterImpl().format(sql);
<час>

ИСХОДНЫЙ ОТВЕТ:

, Если Вы используете, в спящем режиме, у них есть одно встроенное: org.hibernate.pretty.Formatter

String formattedSQL = new Formatter(sql).format();
47
ответ дан Roshana Pitigala 28 November 2019 в 01:19
поделиться

Часть затмения Платформа Инструментов Данных Проект .

Средств разработки SQL страница, описывающая, как использовать , Синтаксический анализатор SQL-запроса имеет чрезвычайно краткое использование SQLQuerySourceFormat, который предоставляет эти возможности:

  • preserveSourceFormat = опция сохранить входное исходное форматирование, когда исходный текст SQL сгенерирован
  • statementTerminator = символ, разделяющий несколько SQL-операторов
  • hostVariablePrefix = символ, который предшествует переменной базового языка
  • parameterMarker = символ, который определяет параметр базового языка
  • delimitedIdentifierQuote* = символ, который включает выделенные идентификаторы, запись которых в случае, если будет сохранен
  • omitSchema = текущая схема (опущенный в источнике SQL, неявном к неполным ссылкам на таблицу)
  • qualifyIdentifiers = флаг, описывающий, как идентификаторы в источнике SQL будут квалифицированы
  • preserveComments = опция сохранить комментарии в проанализированном источнике SQL или/и сгенерированном источнике SQL
  • generateCommentsForStatementOnly = опция генерировать комментарии для источника SQL только в контексте законченного высказывания, или, если установлено на ложь, для единственных объектов SQL-запроса вне контекста оператора также
5
ответ дан Stephen Denne 28 November 2019 в 01:19
поделиться

Имейте Вас рассмотренный:

http://www.sqlinform.com

Они обеспечивают и версию API и версию командной строки (а также интерактивная версия).

Никакое знание затрат все же.

2
ответ дан Community 28 November 2019 в 01:19
поделиться

Вы могли просто использовать грамматика SQL и создать AST с antlr. Затем можно произвести дерево в любом формате, который Вы любите.

1
ответ дан tcurdt 28 November 2019 в 01:19
поделиться
1
ответ дан Ferdeen 28 November 2019 в 01:19
поделиться

Возможно jsqlparser будет работать на Вас.

Не столь легкий найти, как Вы могли бы думать, как существует справедливое небольшое количество более не существующие проекты там. На самом деле мне не удалось найти, что это так закончило тем, что делало мою собственную вещь (на основе h2 синтаксического анализатора - можно связаться со мной, если все остальное перестало работать). Как следствие я не знаю, имеет ли это программу изящного форматирования, но запись, что тот на вершине должен быть достаточно прямым.

на основе грамматики и JavaCC, так вероятно, более оптимальный вариант, чем переосмысление этого колеса с antlr в любом случае. Можно найти, необходимо ли поддерживать различные диалекты sql в сложных операторах, что любой подход на основе грамматики приведет Вас к сбою.

1
ответ дан mike g 28 November 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: