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

OSCHINA-MIRROR/selfly-sonsure-dumper

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

Sonsure-Dumper

Простой, быстрый и удобный в использовании слой для сохранения данных через JDBC.

Последнее обновление: 4.3.0

  • Объединение пакета инструментов commons;
  • Добавление модуля flyable;
  • Поддержка класса уровня типа для Select;
  • Изменение addColumn и dropColumn вместо include и exclude;
  • Исправление ошибки с автоинкрементным первичным ключом в h2;
  • Интеграция тестового модуля с управлением зависимостями spring boot;
  • Частичная оптимизация кода.

Пример

// Получение объекта по первичному ключу
User user = jdbcDao.get(User.class, 177);

// Поиск всех объектов списка
List<User> users = jdbcDao.find(User.class);

// Запрос постраничного списка
Page<User> page = jdbcDao.pageResult(user);

// Выполняет запрос на основе непустых атрибутов объекта пользователя
long count = jdbcDao.findCount(user);

// Возвращает объект пользователя на основе непустых атрибутов, если их несколько — выбрасывает исключение
User user = jdbcDao.singleResult(user);

// Если есть несколько объектов, возвращает первый, после постраничной обработки возвращает первую запись из таблицы
User user = jdbcDao.firstResult(user);

// Автоматически обрабатывает первичный ключ на основе стратегии, установленной в объекте пользователя, если установлен первичный ключ — обработка не производится
// Тип возвращаемого значения первичного ключа зависит от его генерации, может быть преобразован самостоятельно
Long id = (Long)jdbcDao.executeInsert(user);

// Обновляет объект пользователя по первичному ключу
jdbcDao.executeUpdate(user);

// Удаляет объект пользователя по первичному ключу
jdbcDao.executeDelete(User.class, 1800081L);

// SQL: update User set user_age = user_age + 1 where user_info_id = 17
jdbcDao.update(User.class)
        .set("{{userAge}}", "userAge+1")
        .where("userInfoId", 17L)
        .execute();

// SQL: select user_age, count(*) num from user_info group by user_age order by num desc limit 0,10
Page<Object> page = jdbcDao.selectFrom(UserInfo.class).addColumn("userAge,count(*) Num")
        .groupBy(UserInfo::getUserAge()) //4.0版开始属性推荐使用lambda方式,防止拼错
        .orderBy("Num").desc()
        .paginate(1, 10)
        .isCount(false)
        .pageMapResult();

Особенности

  • Не требуется использование dao или baseDao, даже не нужно объявлять или внедрять dao;
  • Простота изучения, api похож на sql, что упрощает использование;
  • Поддерживаются различные символы условий, такие как =, !=, or, in, not in, а также выполнение функций;
  • Можно указать порядок сортировки по полю, можно задать несколько полей для свободной сортировки;
  • Возможность указывать поля для отображения или исключения, а также добавлять дополнительные функции, чтобы получать только нужные данные;
  • Встроенная функция постраничной навигации, автоматическое управление страницами без необходимости написания дополнительного кода;
  • Использование {{}} для выполнения специальных запросов, таких как user_age = user_age + 1, которые не подходят для передачи параметров;
  • Поддержка выполнения собственных запросов;
  • Совместимость с Mybatis, возможность использования Mybatis для написания запросов;
  • Лёгкость расширения, компоненты, такие как генераторы первичных ключей, механизмы постраничной навигации и конструкторы команд (sql/hql и т. д.), а также механизмы сохранения могут быть расширены или переписаны.

Компоненты по сути представляют собой более удобную оболочку для общего dao. Даже если компонент не удовлетворяет требованиям или не имеет необходимой функциональности, можно использовать оригинальный способ выполнения запросов без влияния на работу компонента.

Использование

Добавьте зависимость, по умолчанию используется реализация Spring Jdbc, но можно выбрать другую реализацию:

<dependency>
    <groupId>com.sonsure</groupId>
    <artifactId>sonsure-dumper-springjdbc</artifactId>
    <version>${version}</version>
</dependency>

Объявите Bean, дополнительные параметры см. в соответствующей документации:

<bean id="jdbcDao" class="com.sonsure.dumper.springjdbc.persist.SpringJdbcDaoTemplateImpl">
    <property name="dataSource" ref="dataSource"/>
</bean>

Используйте JdbcDao традиционным способом инъекции:

@Autowired
private JdbcDao jdbcDao;

jdbcDao.get(User.class, 177);

Документация

В документации могут быть представлены конфигурации xml или JavaConfig, оба способа работают одинаково, вы можете выбрать подходящий.

Вклад

github: https://github.com/selfly/sonsure-dumper
gitee: https://gitee.com/selfly/sonsure-dumper

  1. Создайте форк этого проекта.
  2. Создайте ветку Feat_xxx.
  3. Внесите изменения.
  4. Отправьте запрос на слияние.

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

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

Введение

Простой, быстрый, удобный, легко используемый слой операций персистентности JDBC. Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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