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

OSCHINA-MIRROR/keepbx-SimplifyDb

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

SimplifyDb

В Java существует множество способов работы с базами данных, но использование некоторых фреймворков может показаться сложным. В этой статье представлен один из вариантов упрощённого подхода к работе с базами данных.

Введение

SimplifyDb — это фреймворк на основе druid для упрощения написания SQL-запросов в Java. Проект использует отражение для чтения и записи необходимых сущностей и таблиц, а также предоставляет различные генераторы первичных ключей и интерфейс для пользовательских генераторов.

Основные особенности проекта:

  • Быстрая настройка и работа с несколькими базами данных;
  • Автоматическое переключение между несколькими источниками данных;
  • Предоставление различных генераторов первичных ключей и возможности создания пользовательских;
  • Унификация записей о создателе и редакторе данных;
  • Простая настройка функции логического удаления;
  • Поддержка асинхронного выполнения операций записи;
  • Восстановление HTML-сущностей.

Пример использования: src/test/java/cn/simplifydb

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

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

API

Пример кода

Блог

Установка

Maven

Добавьте следующие зависимости в файл pom.xml вашего проекта:

<dependency>
    <groupId>cn.simplifydb</groupId>
    <artifactId>simplifydb</artifactId>
    <version>version</version>
</dependency>

Обратите внимание, что VERSION следует заменить на последнюю версию библиотеки в общем репозитории Maven. https://mvnrepository.com/artifact/cn.simplifydb/simplifydb

Изменения версий

Обратная связь или предложения

Особенности проекта (с использованием пула соединений druid):

  1. Поддержка нескольких источников данных;
  2. Разделение чтения и записи для каждого источника данных и случайный выбор;
  3. Ведение журнала через интерфейсы;
  4. Получение текущего пользователя через интерфейс;
  5. Возможность асинхронного выполнения для операций добавления, изменения и удаления;
  6. Предоставление интерфейсов для вызова во время выполнения операций добавления, изменения и удаления;
  7. Автоматическая запись текущего последнего редактора и времени последнего изменения данных;
  8. Автоматическая регистрация времени последнего изменения данных (не конфликтует с пунктом 5).

Приглашаем всех к участию в обсуждении!

cn.simplifydb.database.config.DataSourceConfig — класс конфигурации инструментов;

cn.simplifydb.system.DbLog — инструмент ведения журнала для адаптации к различным проектам, использующий интерфейсы для регистрации записей;

cn.simplifydb.database.run.read.IsExists — проверка существования;

cn.simplifydb.database.run.read.Select — различные способы запросов;

cn.simplifydb.database.run.read.SelectFunction — запросы с функциями;

cn.simplifydb.database.run.read.SelectPage — постраничные запросы;

cn.simplifydb.database.run.write.Insert — добавление данных;

cn.simplifydb.database.run.write.Remove — удаление данных;

cn.simplifydb.database.run.write.Update — изменение данных;

cn.simifydb.database.run.write.Transaction — операции с транзакциями.

Пример конфигурации: (db.properties)

sourceTag=core
configPath=file:/test/read.properties
systemKey=com.yoke   
systemKeyColumn=url,username,password
#
lastModify.time=UNIX_TIMESTAMP(NOW())
lastModify.class=com.yoke.entity.EditOptBaseEntity,com.yoke.entity.AdminOptBaseEntity
lastModify.column.user=lastModifyUser
lastModify.column.time=lastModifyTime
#
create.class=com.yoke.entity.AdminOptBaseEntity
create.column.user=createUser
#
systemColumn.pwd=pwd
systemColumn.active=isDelete
systemColumn.active.value=0
systemColumn.inActive.value=1
#
systemColumn.modify.status=true
systemColumn.modify.column=modifyTime
systemColumn.modify.time=UNIX_TIMESTAMP(NOW())
#
systemColumn.notPutUpdate=modifyTime,isDelete,createTime,createUser,lastModifyUser,lastModifyTime,id
systemColumn.columnDefaultValue=modifyTime:UNIX_TIMESTAMP(NOW()),createTime:UNIX_TIMESTAMP(NOW())
systemColumn.writeDefaultRemove=createUser,lastModifyUser,lastModifyTime,id,isDelete
systemColumn.readDefaultRemove=pwd
systemColumn.selectDefaultColumns=*
#
systemColumn.defaultRefKeyName=id
systemColumn.defaultKeyName=id

sourceTag и configPath являются обязательными полями.

Остальные поля настраиваются в соответствии с конкретными условиями.

systemKey — ключ шифрования в configPath. Какие из полей являются полями для шифрования?

Пример конфигурации: (file:/test/read.properties)

core.driver=com.mysql.jdbc.Driver
core.url=1953342c4b
core.username=12b0ecd
core.password=9085ada2469
core.init=true
core.maxActive=10000
core.validationQuery=SELECT 'x'
core.testOnReturn=false
core.testOnBorrow=false
core.testWhileIdle=true
core.minIdle=30
core.initialSize=1
core.removeAbandoned=true
core.removeAbandonedTimeout=60
core.logAbandoned=true

Конкретное значение полей конфигурации см. в https://github.com/alibaba/druid/wiki/DruidDataSource%E9%85%8D%E7%BD%AE%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8.

Инициализация:

  1. Сначала установите интерфейс журнала:

cn.simplifydb.system.DbLog.setDbLogInterface()

Метод передаёт интерфейс cn.simplifydb.system.DbLog.DbLogInterface, который в основном отвечает за запись журнала выполнения util.

  1. Начните инициализировать соединение с базой данных:

cn.simplifydb.database.config.DataSourceConfig.init() параметр — путь к файлу конфигурации.

Поддерживает file: , classpath: и Properties.

  1. Установите интерфейс преобразования сущности базы данных (в соответствии с классом получите источник данных, соответствующий этой сущности):

cn.simplifydb.database.DbWriteService.setWriteInterface()

Метод принимает интерфейс cn.simplifydb.database.DbWriteService.WriteInterface, который отвечает за обработку метки источника данных и имени таблицы сущности.

Дополнительные примеры использования: src/test/java/cn/simplifydb

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

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

Введение

В Java существует несколько способов работы с базой данных, но использование некоторых фреймворков может показаться сложным при простой обработке. Здесь предлагается один из вариантов простого и быстрого способа работы с базой данных. Развернуть Свернуть
Apache-2.0
Отмена

Обновления (4)

все

Участники

все

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

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