Проект, интегрирующий spring-boot, mybatis, универсальные мапперы, pagehelper и druid. Цель проекта — упростить разработку уровня данных, сделать конфигурацию mybatis полностью xml-независимой, включить jpa в разработку на основе mybatis, значительно уменьшить порог входа для mybatis и повысить его удобство использования. Это позволяет новичкам легко работать с mybatis, а опытным разработчикам повышает эффективность и качество кода.
Быстрый старт нажмите здесь
2. 0. 2
Дата выпуска: 8 сентября 2018 года
Обновления:
1. Решение проблемы с избыточным количеством потоков при создании пула подключений к базе данных
2. Решение проблемы обязательного конфигурирования отдельного источника данных
3. Оптимизация части кода
2. 0. 1
Дата выпуска: 15 мая 2018 года
Обновления:
1. Оптимизация части кода
2. Решение проблем в генераторе кода
2. 0. 0
Дата выпуска: 10 мая 2018 года
Обновления:
1. Добавление поддержки шардинга с использованием sharding-jdbc
2. Другие изменения
Внимание: Конфигурационные файлы версий 2. X. X и 1. X. X не совместимы
1. 1. 0
Дата выпуска: 12 апреля 2018 года
Обновления:
1. Обновление spring-boot до версии 2. 0. 1
1. 0. 7
Дата выпуска: 11 апреля 2018 года
Обновления:
1. Обновление spring-boot до версии 1. 5. 11 и других зависимостей
2. Решение проблемы исключения при использовании GeneratorMain для генерации кода, если проект зависит от spring-boot-starter-web
1. 0. 6
Дата выпуска: 24 января 2018 года
Обновления:
1. Изменение части параметров по умолчанию
2. Добавление spring. mybatis. nodes. [dbname]. свойств mybatis конфигурации параметров
1. 0. 5
Дата выпуска: 11 декабря 2017 года
Обновления:
1. Обновление зависимости druid до версии 1. 1. 6
2. Исправление ошибки транзакции, вызванной версией 1. 0. 4
1. 0. 4
Дата выпуска: 9 ноября 2017 года
Обновления:
1.Переписан входной класс генератора кода, изменены зависимости конфигурации генератора кода
2. Исправление проблемы изоляции конфигурации при использовании нескольких источников данных
3. Исправление проблемы зависимости от инструментальных классов генератора кода
1. 0. 3
Дата выпуска: 3 ноября 2017 года
Обновление:
1. Уменьшение зависимости от JDK до версии 1. 7
2. Исправление проблемы плагина пагинации при использовании нескольких источников данных
1. 0. 2
Дата выпуска: 29 сентября 2017 года
Обновление:
1. Исправление проблемы выхода за пределы массива при попытке переключиться на реплику при отсутствии реплик или их временной недоступности
1. 0. 1
Дата выпуска: 27 сентября 2017 года
Обновление:
1. Добавление зависимости mybatis-generator для быстрого генерирования слоя DAO
1. 0. 0
Дата выпуска: 24 сентября 2017 года
Обновление:
1. Поддержка разделения на чтение и запись;
2. Поддержка нескольких источников данных;
3. Мониторинг сервера на основе druid;
4. Поддержка указания соответствия перечислений и значений базы данных с помощью аннотаций;
5. Быстрое создание CRUD для одиночных таблиц с помощью общего маппера;
6. Быстрое создание физического пагинационного запроса с помощью pagehelper.
### Пример программы
git clone https://gitee.com/lei0719/spring-boot-starter-dao-example.git
Импортируйте пример в Eclipse, измените параметры в generator.properties
, чтобы указать параметры JDBC для вашей базы данных. Измените параметры таблицы, заменив таблицы, которые планируется сгенерировать, на существующие в вашей базе данных.
Запустите проект в режиме Application, выбрав класс com.reger.mybatis.generator.GeneratorMain
, содержащий метод main.
Подождите немного, если ошибок не возникло, то слой данных для ваших таблиц сгенерирован.
Для запуска примерного проекта вам сначала нужно импортировать файл данных test.sql
.
Затем измените параметры подключения к базе данных в application.yml
. Если реплика не используется, можно закомментировать её конфигурацию.
Запустите проект в корневой директории с помощью команды mvn spring-boot:run
spring:
druid:
stat:
enable: true # Включение мониторинга druid
allow: '' # IP-белый список (если не указан или пуст, то разрешено все подключения)
deny: '' # IP-черный список (при наличии общих элементов, deny имеет приоритет над allow)
loginUsername: 'leige' # Имя пользователя
loginPassword: 'leige' # Пароль
exclusions: '*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*' # WebStatFilter игнорирует ресурсы
``` resetEnable: false # Отключает функцию "Сбросить все" на HTML-странице
filter-url-patterns: '/*'
spring:
druid:
default: # Заданные параметры подключения Druid, конкретные параметры для основного или реплицирующегося подключения наследуют эти параметры
enable: true
initial-size: 5 # Инициализация размера пула подключений
max-active: 500 # Максимальное количество подключений в пуле
min-idle: 5 # Минимальное количество подключений, которое должно быть доступно в пуле
max-wait: 3000 # Максимальное время ожидания подключения
filters: wall,stat # Включенные фильтры
username: reger # Имя пользователя для подключения к базе данных
password: reger_123 # Пароль для подключения к базе данных
default-auto-commit: true # Автоматическое подтверждение транзакций, если значение равно false, данные без транзакций не будут сохранены
access-to-underlying-connection-allowed:
async-close-connection-enable:
break-after-acquire-failure:
clear-filters-enable:
connection-error-retry-attempts:
default-read-only:
default-transaction-isolation:
driver-class-name:
dup-close-log-enable:
fail-fast:
log-abandoned:
log-different-thread:
login-timeout:
max-create-task-count:
max-evictable-idle-time-millis:
max-open-prepared-statements:
max-pool-prepared-statement-per-connection-size:
min-evictable-idle-time-millis:
not-full-timeout-retry-count:
pool-prepared-statements:
query-timeout:
remove-abandoned:
``` remove-abandoned-timeout-millis:
test-on-borrow:
test-on-return:
test-while-idle:
time-between-connect-error-millis:
time-between-eviction-runs-millis:
time-between-log-stats-millis:
url:
validation-query:
validation-query-timeout:
connect-properties:
spring:
mybatis:
``` конфигурация: # конкретные параметры конфигурации mybatis, все экземпляры mybatis будут использовать эту конфигурацию
кэш-включен: true # включить кэш
локальный-кэш-домен: сессия # область кэша
ленивая-загрузка-включена: true # включить ленивую загрузку
тип-исполнителя-по-умолчанию: простой # режим выполнения SQL
преобразование-подчеркивания-в-кэмел-кейс: true # включить преобразование подчеркиваний в CamelCase
агрессивная-ленивая-загрузка:
поведение-автомаппинга:
вызов-сеттеров-на-нулях:
стандартный-размер-запроса:
стандартное-время-ожидания-запроса:
префикс-лога:
использование-сгенерированных-ключей:
реализация-лога:
включение-поддержки-нескольких-результатных-наборов:
возврат-экземпляра-для-пустой-строки:
использование-имени-столбца:
включение-безопасного-обработчика-результатов:
включение-безопасных-ограничений-строк:
использование-реального-имени-параметра:
spring:
mybatis:
узлы: пользователь: # имя этого узла данных
порядок: перед # порядок генерации первичного ключа mybatis, если необходимо получить ключ перед вставкой данных, установите значение BEFORE, иначе установите значение AFTER, значение по умолчанию - BEFORE
стиль: обычный # стандартное преобразование полей в mybatis универсальном маппере
основной: false # является ли это основным объектом данных, максимум один объект может быть установлен в true, только первый конфигурированный объект будет применяться
базовый-пакет: com.reger.test.user.dao # пакет конфигурации интерфейсов маппера mybatis, это значение не может быть пустым, можно использовать регулярные выражения, несколько значений разделяются запятой
пакет-маппера: com.reger.test.user.mapper # пакет конфигурации XML файлов маппера mybatis, это значение лучше не оставлять пустым, можно использовать регулярные выражения, несколько значений разделяются запятой
пакет-типов-алиасов: 'com.reger.test.user.model' # пакет классов модели, это значение может быть пустым, можно использовать регулярные выражения, несколько значений разделяются запятой
параметры: # параметры конфигурации mybatis
карта-конфигурации: источники-данных: # конфигурация источников данных для разделения баз данных (если нет конфигурации источников данных для разделения баз данных и нет конфигурации шардирования, будет использована конфигурация основного и репликационного источников данных)
пользователь_0:
тип-алгоритма-балансировки-загрузки: круговой-по-очереди
мастер:
url: jdbc:mysql://127.0.0.1:3306/user?useSSL=false
рабочие_узлы:
- url: jdbc:mysql://127.0.0.1:3308/user?useSSL=false
свойства:
sql.show: true
база:
порядок: перед
стиль: обычный
основной: true
основной_пакет: com.reger.test.base.dao
пакет_мапперов: com.reger.test.base.mapper
пакет_типовых_алиасов: 'com.reger.test.base.model'
источники_данных:
база_0:
тип_алгоритма_балансировки_загрузки: случайный
мастер:
url: jdbc:mysql://127.0.0.1:3306/base_0?useSSL=false
база_1:
тип_алгоритма_балансировки_загрузки: последовательный
мастер:
url: jdbc:mysql://127.0.0.1:3306/base_1?useSSL=false
рабочие_узлы:
- url: jdbc:mysql://127.0.0.1:3308/base_1?useSSL=false
свойства:
sql.show: true
шардинг: стратегия_по_умолчанию_базы:
inline:
столбец_шардинга: id
выражение_алгоритма: "base_${id % 23 % 2}"
таблицы:
база:
имя_столбца_генератора_ключа: id
фактические_узлы_данных: "base_${0..1}.base"
# имя_класса_генератора_ключа:
# логический_индекс:
# логическая_таблица: база
# стратегия_базы:
# inline:
# столбец_шардинга: id
# выражение_алгоритма: "base_${id % 23 % 2}"
# стратегия_таблицы:
# inline:
# столбец_шардинга: ctime
# выражение_алгоритма: base_${D.format(ctime)}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )