1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/unknow0409-sql-builder

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Не будем больше беспокоиться о трудноподдерживаемых SQL-запросах в Java-коде, SqlBuilder вам поможет!

Преимущества инструмента

  • Размер всего инструмента составляет 36,6 КБ.
  • Считывает и кэширует внешние SQL-файлы.
  • Предоставляет открытый интерфейс SqlRenderEngine, позволяющий вам самостоятельно рендерить исходные операторы.
  • Уже интегрирован внутренний шаблонный движок (Beetl или Freemarker), который можно использовать сразу после импорта jar-пакета.

Быстрая настройка за 1 минуту

  1. Скопируйте файл sqlbuilder-config-default.properties в папку src вашего проекта.
  2. Переименуйте его в sqlbuilder-config.properties.
  3. Введите путь к каталогу, где хранятся SQL-файлы, в поле sqlFolders. Используйте запятую для разделения нескольких каталогов.
  4. Выберите режим работы в поле sqlMode: run для быстрого чтения из кэша в рабочем режиме и debug для отслеживания изменений в SQL-файлах в режиме разработки без необходимости перезапуска.
  5. Импортируйте пакет sql-builder-v1.3.5.jar.
  6. Вызывайте код на Java.
/**
 * Если вам нужно использовать шаблонизатор для рендеринга,
 * здесь вы можете установить глобальный механизм.
 * Например, я использую механизм beetl.
 */
SqlBuilder.setEngine(new SqlBeetlEngine());

// Получаем SQL-запрос, test — это имя файла, findSqlOfBeetl — уникальный идентификатор запроса, при повторении будет возвращён первый.
String sql0 = SqlBuilder.render("test.findSqlOfBeetl");

// Этот способ передачи параметров в конструкторе был объявлен устаревшим в версии v1.3.5
String sql1 = SqlBuilder.render("test.findSqlOfBeetl", new SqlBuilderPara("name", "颖"), ...);

// Рекомендуется использовать
String sql2 = SqlBuilder.sql("test.findSqlOfBeetl")
// Если не указан механизм, используется глобальный.
// Указание механизма рендеринга шаблона применяется только к этому запросу, последующие настройки будут перекрывать предыдущие.
// Использование механизма freemarker
.engine(SqlFreemarkerEngine.class)
// Использование механизма beetl
.engine(SqlBeetlEngine.class)
// Установка параметров
.para("name", "颖")
.para(..., ...)
// Рендеринг запроса
.render();

Тестовые случаи

Файл test.md

findSqlOfFreemarker
===
-- Внешние SQL-запросы также могут содержать комментарии
select * from T_TEST AS i <#if order ??>ORDER BY i.date ${order} </#if>

findSqlOfBeetl
===
-- Комментарий 2
select * from T_TEST AS i <%if (!isEmpty(name)) {%>where i.name = '${name}' <%}%>

fromUserId
===
from user where id = ?

findUserName
===
-- Запрос с использованием функции
-- Включение этого файла аналогично обычному вызову test.yourSqlName
select username sql('fromUserId')

Тестовый класс Tester.java

// Устанавливаем глобальный шаблонизатор
SqlBuilder.setEngine(new SqlBeetlEngine());

// Beetl
String sql1 = SqlBuilder.render("test.findSqlOfBeetl", new SqlBuilderPara("name", "颖"));

System.out.println("Рендеринг с помощью Beetl:");
System.out.println(sql1);

// Freemarker
// Настройка отдельного шаблонизатора
String sql2 = SqlBuilder.render(new SqlFreemarkerEngine(), "test.findSqlOfFreemarker", new SqlBuilderPara("order", "DESC"));

System.out.println("Рендеринг с помощью Freemarker:");
System.out.println(sql2);

// Пример использования функции запроса
String sql3 = SqlBuilder.render("test.findUserName");

System.out.println("Функция sql('...') для рендеринга:");
System.out.println(sql3);

Результат вывода

Рендеринг с помощью Beetl:
select * from T_TEST AS i where i.name = '颖'

Рендеринг с помощью Freemarker:
select * from T_TEST AS i ORDER BY i.date DESC

Функция sql('...') для рендеринга:
select * from user where id = ?

Журнал обновлений

v1.3.5
[Новое] Добавлен новый способ построения SqlBuilder.sql('fileName.sqlId').para(key, value).para(key, value).render().

v1.3.4
[Исправлено] Проблема с ошибкой при передаче null значения в SqlBuilderPara.

v1.3.3
[Исправлено] Проблема невозможности toJSONString в классе SqlBuilderModel.

v1.3.2
[Новое] Поддержка быстрого использования класса SqlBuilderModel в jfinal.
[Новое] Конфигурационный файл с параметром sqlDebug=true для режима отладки, выводящий рендеренные запросы и параметры перед и после рендеринга.

v1.3.1
[Оптимизация] Оптимизация кода рендеринга SQL-запросов для базы данных Damao.

V1.3
[Новое] Функция sql('...'), поддерживающая функцию запроса.
[Новое] Промежуточное ПО для повышения расширяемости.

V1.2
[Новое] Логирование с log4j.
[Новое] Поддержка рендеринга запросов для базы данных Damao.
[Оптимизация] Оптимизирован код с использованием Sonarqube для улучшения качества кода.
[Исправление] Исправлены некоторые мелкие ошибки.
[Тестирование] Оптимизация на основе опыта использования в официальном коммерческом проекте.

v1.1
[Оптимизация] Удалена зависимость от пакета инструментов apache-commons-lange3.

v1.0
[Рождение] Первое появление проекта в git.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Инструмент, который помогает высвободить SQL-оператор из Java-кода. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/unknow0409-sql-builder.git
git@api.gitlife.ru:oschina-mirror/unknow0409-sql-builder.git
oschina-mirror
unknow0409-sql-builder
unknow0409-sql-builder
master