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

OSCHINA-MIRROR/xiyoufang-jfinal-xsql-plugin

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

Введение


JFinal-XSQL-плugин — это динамический плагин SQL для JFinal, предназначенный для упрощения работы с Active Record в JFinal, а также для унифицированного управления SQL-запросами. При работе со сложными SQL-запросами этот плагин позволяет легко справиться с задачей. Этот фреймворк написан в стиле MyBatis/IbatiS, однако его работа принципиально отличается от этих фреймворков. XSQL не является ORM-фреймворком; он представляет собой мощный инструмент для генерации SQL-запросов и соответствующих параметров подготовленных запросов на основе определённых правил. Использование этого фреймворка очень простое. Он реализует четыре основных правила: foreach, isempty, isnotempty, isequal, isnotequal. Однако возможности этого фреймворка не ограничиваются этими правилами; он позволяет регистрировать произвольные правила.

Ранее был создан другой динамический плагин SQL для JFinal http://git.oschina.net/h5lib/jsql. В этом фреймворке используется JavaScript, который использует движок Rhino для выполнения JS-кода. Общая масса такого подхода больше, чем у нового плагина, скорость рендера 10000 запросов составляет около 10 секунд против 1 секунды у нового плагина. Кроме того, в статье http://www.jfinal.com/share/75 некоторые люди выразили недовольство таким подходом, поэтому был создан новый плагин, аналогичный IbatiS, который управляет правилами через XML-теги.### Maven зависимость

<dependency>
    <groupId>cn.fsdev</groupId>
    <artifactId>jfinal-xsql-plugin</artifactId>
    <version>2.2</version>
</dependency>

Пример использования


1. Основной конфигурационный файл SqlConfig:

<sqlconfig>
    <statements>
        <statement tag="isnull" class="com.jfplugin.xsql.IsNullStatement" />
    </statements>
    <sqlmap path="classpath:sql-a.xml"></sqlmap>
    <sqlmap path="classpath:sql-b.xml"></sqlmap>
    <sqlmap path="classpath:sql-c.xml"></sqlmap>
</sqlconfig>

Конфигурационный файл содержит только два типа узлов: statements и sqlmap. Узел statements используется для конфигурирования пользовательских правил, а узел sqlmap — для импорта файлов sqlmap.

2. Конфигурационный файл SqlMap

<sqlmap namespace="a">
    <!-- Первый SQL-запрос -->
    <sql id="sql1">
        select * from user t where
        <isnotempty property="ids" prepend="">
            <foreach collection="ids" item="id" open="(" close=")" separator="," prepend="t.id NOT IN ">
                #{id}
            </foreach>
        </isnotempty>
        <isempty property="ids" prepend="">
            1 = 0
        </isempty>
        <isnull>
            1 = 2
        </isnull>
    </sql>
    <!-- Второй SQL-запрос -->
    <sql id="sql2">
        select * from a where a.id = ${id} and a.name = ${name}
    </sql>
</sqlmap>

Файл конфигурации SqlMap включает узлы sqlmap, sql и управляющие узлы SQL. Узел sqlmap используется для указания пространства имен, а узел sql — для управления конкретными SQL-запросами. Каждый SQL-запрос уникален благодаря сочетанию пространства имен и значения id.Для ссылки на переменные внутри текста SQL-запроса используются формы #{var} и ${var}. Форма #{var} используется для подготовленных запросов, а форма ${var} — для прямого включения значений в SQL-запрос.

3. Включение плагинов в JfinalConfig

me.add(new XsqlPlugin("sql-config.xml", true));#### 4. Вызов динамического SQL Результат — объект SqlArgs, содержащий SQL-запрос и список параметров.

Map<String, Object> map = new HashMap<String, Object>();
map.put("ids", Arrays.asList(1, 2, 3));
SqlArgs sqlArgs = XsqlKit.getSqlArgs("a.sql1", map);

Затем можно использовать следующий способ выполнения SQL в ActiveRecord:

Db.find(sqlArgs.sql, sqlArgs.args);

5. Отдельное использование

Иногда требуется отдельное использование через JDBC, что можно проверить с помощью тестовых примеров в com.jfplugin.xsql.Test1.

6. Подробная документация

Дополнительная информация доступна на официальном сайте: http://www.fsdev.cn/

Операционная среда


Виртуальная машина: JDK 1.6 + Версия JFinal: основана на версии 2.2, теоретически поддерживает версию 2.0 +

Официальный сайт: http://www.fsdev.cn/

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

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

Введение

jfinal-xsql-plugin. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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