В Java существует множество способов работы с базами данных, но использование некоторых фреймворков может показаться сложным. В этой статье представлен один из вариантов упрощённого подхода к работе с базами данных.
SimplifyDb — это фреймворк на основе druid для упрощения написания SQL-запросов в Java. Проект использует отражение для чтения и записи необходимых сущностей и таблиц, а также предоставляет различные генераторы первичных ключей и интерфейс для пользовательских генераторов.
Основные особенности проекта:
Добавьте следующие зависимости в файл pom.xml вашего проекта:
<dependency>
<groupId>cn.simplifydb</groupId>
<artifactId>simplifydb</artifactId>
<version>version</version>
</dependency>
Обратите внимание, что VERSION следует заменить на последнюю версию библиотеки в общем репозитории Maven. https://mvnrepository.com/artifact/cn.simplifydb/simplifydb
Приглашаем всех к участию в обсуждении!
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.
Инициализация:
cn.simplifydb.system.DbLog.setDbLogInterface()
Метод передаёт интерфейс cn.simplifydb.system.DbLog.DbLogInterface, который в основном отвечает за запись журнала выполнения util.
cn.simplifydb.database.config.DataSourceConfig.init() параметр — путь к файлу конфигурации.
Поддерживает file: , classpath: и Properties.
cn.simplifydb.database.DbWriteService.setWriteInterface()
Метод принимает интерфейс cn.simplifydb.database.DbWriteService.WriteInterface, который отвечает за обработку метки источника данных и имени таблицы сущности.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )