Если вы хотите использовать механизмы кэширования, например Redis или Memcached , возможно, выбор DALMP может быть выбран. Он использует чистый MySQLi . Проверьте это: Уровень абстракции базы данных DALMP для MySQL с использованием PHP.
Кроме того, вы можете «подготовить» свои аргументы перед подготовкой своего запроса, чтобы вы могли создавать динамические запросы и в конце имеют полностью подготовленный запрос. Уровень абстракции базы данных DALMP для MySQL с использованием PHP.
ОБНОВЛЕНИЕ 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();
Часть затмения Платформа Инструментов Данных Проект .
Средств разработки SQL страница, описывающая, как использовать , Синтаксический анализатор SQL-запроса имеет чрезвычайно краткое использование SQLQuerySourceFormat, который предоставляет эти возможности:
Имейте Вас рассмотренный:
Они обеспечивают и версию API и версию командной строки (а также интерактивная версия).
Никакое знание затрат все же.
Вы могли просто использовать грамматика SQL и создать AST с antlr. Затем можно произвести дерево в любом формате, который Вы любите.
Был бы эта работа - Средство форматирования SQL.
Возможно jsqlparser будет работать на Вас.
Не столь легкий найти, как Вы могли бы думать, как существует справедливое небольшое количество более не существующие проекты там. На самом деле мне не удалось найти, что это так закончило тем, что делало мою собственную вещь (на основе h2 синтаксического анализатора - можно связаться со мной, если все остальное перестало работать). Как следствие я не знаю, имеет ли это программу изящного форматирования, но запись, что тот на вершине должен быть достаточно прямым.
на основе грамматики и JavaCC, так вероятно, более оптимальный вариант, чем переосмысление этого колеса с antlr в любом случае. Можно найти, необходимо ли поддерживать различные диалекты sql в сложных операторах, что любой подход на основе грамматики приведет Вас к сбою.