Проект, который интегрирует Spring Boot, MyBatis, универсальные мапперы, PageHelper и Druid. Цель проекта — снизить сложность разработки уровня данных, сделать конфигурацию MyBatis полностью независимой от XML, включить JPA в разработку на основе MyBatis, значительно упростить входной порог использования MyBatis и повысить его удобство применения. Проект позволяет новичкам легко работать с MyBatis, а опытным разработчикам повышает эффективность работы и качество кода.
Быстрый старт нажмите здесь### Общедоступный доступ к проекту Проект будет обновляться на 开元中国 и GitHub, приветствуем ваши отзывы и предложения!
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 операций для одной таблицы с помощью общего Mapper
6. Легкая реализация физического пагинации с помощью PageHelper```markdown
### Пример программы
#### 1. Клонировать [пример программы](https://gitee.com/lei0719/spring-boot-starter-dao-example)
```bash
git clone https://gitee.com/lei0719/spring-boot-starter-dao-example.git
Импортируйте пример в Eclipse, измените параметры в generator.properties
, чтобы JDBC параметры указывали на вашу базу данных. Измените параметры таблицы, заменив планируемые таблицы на существующие в вашей базе данных.
Запустите проект через Application, выбрав метод main в com.reger.mybatis.generator.GeneratorMain
. Ждите завершения процесса; если нет ошибок, то слой DAO будет создан.
Для запуска примера проекта вам потребуется импортировать файл данных test.sql
.
Затем измените параметры подключения к базе данных в 'application.yml'. Если нет вторичного источника данных, можно закомментировать его конфигурацию.
Выполните команду mvn spring-boot:run
в корневой директории проекта.
```markdown
## 2. По умолчанию конфигурация пула соединений Druid
``````yaml
spring:
druid:
default: # Default parameters for the Druid connection pool, specific configurations of the primary or replicated data source will inherit this configuration
enable: true # Enable/disable the connection pool
initial-size: 5 # Initial size of the connection pool
max-active: 500 # Maximum number of active connections in the pool
min-idle: 5 # Minimum number of available connections in the pool
max-wait: 3000 # Maximum wait time to obtain a connection
filters: wall,stat # Activate filters
username: reger # Database user login
password: reger_123 # Password for the database user
default-auto-commit: true # Automatically commit transactions if value is false, then data without an explicit transaction will not be saved
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:
время-между-лог-статистикой-миллисекунды:
url:
проверочное-запрос:
таймаут-проверочного-запроса:
свойства-соединения:
```yaml
spring:
mybatis:
configuration: # Конкретные конфигурационные параметры MyBatis, все экземпляры MyBatis будут использовать эту конфигурацию
cache-enabled: true # Включено ли кэширование
local-cache-scope: session # Область действия локального кеша
lazy-loading-enabled: true # Включено ли ленивое загрузочное поведение
default-executor-type: simple # Тип исполнителя SQL
map-underscore-to-camel-case: true # Включен ли режим преобразования нижнего подчеркивания в стиль CamelCase
aggressive-lazy-loading: # Агрессивное ленивое загрузочное поведение
auto-mapping-behavior: # Автомаппинг поведение
call-setters-on-nulls: # Вызов сеттеров при null значениях
default-fetch-size: # Значение по умолчанию для размера выборки
default-statement-timeout: # Значение по умолчанию для времени ожидания оператора
log-prefix: # Префикс лога
use-generated-keys: # Использование сгенерированных ключей
log-impl: # Реализация логгера
multiple-result-sets-enabled: # Включено ли использование нескольких наборов результатов
return-instance-for-empty-row: # Возвращение экземпляра для пустой строки
use-column-label: # Использование метки столбца
safe-result-handler-enabled: # Включено ли безопасное управление результатами
safe-row-bounds-enabled: # Включено ли безопасное ограничение строк
use-actual-param-name: # Использование реального имени параметра
spring: mybatis: nodes: user: # Название этого узла данных order: before # Порядок генерации первичного ключа MyBatis; если требуется получить ключ до вставки данных, установите значение BEFORE, иначе установите значение AFTER (по умолчанию значение BEFORE) style: normal # По умолчанию способ преобразования полей таблицы в MyBatis универсальном маппере primary: false # Является ли это основным объектом данных, максимум один объект может иметь значение true, только первый установленный объект будет действовать base_package: com.reger.test.user.dao # Расположение конфигурации интерфейсов мапперов MyBatis, это значение не должно быть пустым, можно использовать регулярные выражения, несколько значений разделены запятой mapper_package: com.reger.test.user.mapper # Расположение XML-конфигураций мапперов MyBatis, это значение лучше всего не должно быть пустым, можно использовать регулярные выражения, несколько значений разделены запятой type_aliases_package: 'com.reger.test.user.model' # Пакет с моделью, это значение может быть пустым, можно использовать регулярные выражения, несколько значений разделены запятой properties: # Конфигурационные параметры MyBatis config_map:
data-sources: # Конфигурация источников данных для распределённого хранения (если нет конфигурации источников данных для распределённого хранения и отсутствует конфигурация шардинга, то используется конфигурация основного/резервного сервера)
user_0:
load-balance-algorithm-type: round-robin
``` мастер:
url: jdbc:mysql://127.0.0.1:3306/пользователь?useSSL=false
слейвы:
- url: jdbc:mysql://127.0.0.1:3308/пользователь?useSSL=false
свойства:
sql.show: true
базовый:
порядок: перед
стиль: обычный
основной: true
пакет-базового-класса: com.reger.test.base.dao
пакет-мапперов: com.reger.test.base.mapper
пакет-типовых-алиасов: 'com.reger.test.base.модель'
# свойства:
# конфиг-карта:
источники-данных:
базовый_0:
# алгоритм-балансировки-загрузки-класс-название:
тип-алгоритма-балансировки-загрузки: случайный
мастер:
url: jdbc:mysql://127.0.0.1:3306/базовый_0?useSSL=false
базовый_1:
тип-алгоритма-балансировки-загрузки: последовательный
мастер:
url: jdbc:mysql://127.0.0.1:3306/базовый_1?useSSL=false
слейвы:
- url: jdbc:mysql://127.0.0.1:3308/базовый_1?useSSL=false
свойства:
sql.show: true
шардинг:
# имя-по-умолчанию-источника-данных: базовый_0
# класс-генератора-ключа-по-умолчанию:
# связанные-таблицы:
# -
стратегия-базы-по-умолчанию:
```
Пояснения:
1. Удалены лишние пробелы после `url`.
2. Корректно оформлены строки с адресами.
3. Устранены лишние пробелы внутри значений ключей.
4. Устранены лишние пробелы после `#` в комментариях.
5. Устранены лишние пробелы после `:` в значениях ключей.
6. Устранены лишние пробелы после `=` в значениях ключей.
7. Устранены лишние пробелы после `;`.
Также учтено использование правильных знаков препинания и пробелов. встроенный:
столбец-шардинга: id
выражение-алгоритма: "базовый_${id % 23 % 2}"
таблицы:
базовая:
имя-столбца-генератора-ключа: id
фактические-узлы-данных: "базовый_${0..1} базовая"
# класс-генератора-ключа:
# логический-индекс:
# логическая-таблица: базовая
# стратегия-базы:
# встроенный:
# столбец-шардинга: id
# выражение-алгоритма: "базовый_${id % 23 % 2}"
# стратегия-таблицы:
# встроенный:
# столбец-шардинга: ctime
# выражение-алгоритма: базовый_${D.format(ctime)}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )