Перевод текста на русский язык:
Сервис.ftl
packageName: сервис
fileSuffix: Сервис
Шаблон
Mapper.ftl
packageName: mapper
fileSuffix: Mapper
Конец шаблона
Builder
Конфигурация плагина
Добавление зависимости для драйвера базы данных
Code-builder не ограничивает тип используемой вами базы данных, поэтому при генерации необходимо использовать соответствующие зависимости типа данных. В приведённой выше конфигурации добавлена зависимость для базы данных MySQL.
Код
.....
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
</dependencies>
.....
Настройка переключателя генерации
Не каждый раз при компиляции или упаковке требуется генерировать соответствующую сущность. Code-builder добавляет параметр execute для управления включением и выключением.
true: включить автоматическую генерацию
false: выключить автоматическую генерацию
Конфигурация типа базы данных (используется только maven-plugin)
dbType: тип базы данных, по умолчанию используется база данных MySQL.
dbDriverClassName: класс имени драйвера базы данных. Согласно используемому типу базы данных настраивается соответствующее имя класса драйвера. По умолчанию используется внутреннее определение класса в соответствии с dbType. Если требуется настроить, можно установить.
Основная информация о базе данных (используется только maven-plugin)
dbName: имя базы данных
dbUserName: имя пользователя базы данных
dbPassword: пароль базы данных
dbUrl: путь подключения к базе данных. Путь подключения не требует указания имени базы данных. Пример правильного пути: jdbc:mysql://localhost:3306
Генерация таблиц, соответствующих правилам
Согласно выражению создаётся таблица. Выражение обычно совпадает с выражением запроса с подстановочными знаками. Настройка параметра generatorByPattern и установка соответствующего выражения могут соответствовать списку таблиц, участвующих в генерации.
Указание префикса соответствия
Пример: будет соответствовать app_order_info, app_order_record и т. д.
generatorByPattern: app_order%
Указание соответствия суффиксу
Пример: будет соответствовать app_good_order, app_exchange_order и т.д.
generatorByPattern: %order
Соответствие включения
Пример: будет соответствовать app_order_info, app_good_order и т. д.
generatorByPattern: %order%
Создание указанной таблицы
code-builder поддерживает генерацию одной или нескольких таблиц одновременно. Необходимо только настроить параметр tables.
Например:
<tables>
<table>app_shop_type</table>
<table>app_user_exchange_good</table>
</tables>
Приведённая выше конфигурация предназначена для работы только с app_shop_type и app_user_exchange_good.
Примечание: приоритет параметра tables выше, чем у параметра generatorByPattern.
Путь к пользовательскому построителю
code-builder автоматически ищет шаблоны в classes/templates/builder. Если вы используете шаблон freemarker по умолчанию для генерации, то шаблон хранится в classes/templates/builder/freemarker.
Если вы хотите настроить путь к шаблону, вы можете установить адрес builderDir. Здесь учитывается, что разделители путей различаются в разных операционных системах (Windows использует , Linux и OS X используют /), поэтому здесь используется разделитель . code-builder автоматически преобразует путь в соответствии с операционной системой.
Например:
<builderDir>classes.code.builder</builderDir>
Примечание: папка freemarker не может быть изменена, только корневой путь загрузки шаблона code-builder может быть настроен.
Исключение префикса после генерации сущности
В дизайне базы данных иногда необходимо добавить префикс, например app_, sys_ и т. д., но после фактической генерации сущности префикс не отображается. Параметр ignoreClassPrefix может автоматически исключать префиксы.
Например:
<ignoreClassPrefix>App</ignoreClassPrefix>
Примечание: поскольку он заменяет имя сгенерированного класса, здесь необходимо строго соблюдать правила именования верблюжьего регистра, и можно настроить только один заменяющий префикс за раз.
До использования AppUserInfoEntity, после использования UserInfoEntity.
Настраиваемые шаблоны
Используйте теги шаблонов для настройки списка настраиваемых шаблонов. Можно использовать один или несколько шаблонов одновременно для генерации.
Например:
<templates>
<template>
<name>entity.ftl</name>
<packageName>entity</packageName>
<fileSuffix>entity</fileSuffix>
</template>
<template>
<name>service.ftl</name>
<packageName>service</packageName>
<fileSuffix>Service</fileSuffix>
</template>
<template>
<name>mapper.ftl</name>
<packageName>mapper</packageName>
<fileSuffix>Mapper</fileSuffix>
</template>
</templates>
name: имя шаблона в каталоге freemarker, обязательно
packageName: имя подпакета сгенерированных файлов, необязательно
fileSuffix: суффикс сгенерированных файлов. Например, если настроено как Entity, сгенерированное имя файла — userInfoEntity, а первая буква суффикса автоматически преобразуется в верхний регистр в соответствии со стилем верблюжьего регистра. Является ли ключом, тип данных: java.lang.Boolean, true: ключ, false: не ключ
freemarker шаблон: ${column.xxx}, например, использование имени столбца: ${column.columnName}
Ниже приведён простой пример шаблона, который можно настроить в соответствии с встроенными параметрами.
<#if (packageName)??>
package ${packageName};
</#if>
import lombok.Data;
<#if (table.hasSqlDate)>
import java.sql.Date;
</#if>
<#if (table.hasTimeStamp)>
import java.sql.Timestamp;
</#if>
<#if (table.hasBigDecimal)>
import java.math.BigDecimal;
</#if>
/**
* <p>Этот класс был автоматически создан code-builder.</p>
* <p>Имя таблицы: ${table.tableName} - ${table.remark}</p>
* ===============================
* Создано с помощью code-builder.
* Пользователь: 恒宇少年
* Дата: ${.now}
* Краткая книга: http://www.jianshu.com/u/092df3f77bca
* Облако кода: https://gitee.com/hengboy
* ================================
*/
@Data
public class ${className} {
<#list table.primaryKeys as key>
/**
* ${key.columnName} - ${key.remark}
*/
private ${key.javaType} ${key.javaProperty};
</#list>
<#list table.columns as column>
<#if (!column.primaryKey)>
/**
* ${column.columnName} - ${column.remark}
*/
private ${column.javaType} ${column.javaProperty};
</#if>
</#list>
}
Это содержимое шаблона freemarker для создания класса данных. Сохраните этот шаблон в каталоге freemarker и добавьте конфигурацию в тег templates, чтобы автоматически создать класс данных. После создания класс данных будет выглядеть следующим образом:
package com.code.builder.sample.model;
import lombok.Data;
import java.sql.Timestamp;
/**
* <p>Этот класс был автоматически создан code-builder.</p>
* <p>Таблица имён: app_balance_type — информация о типе баланса</p>
* ===============================
* Создано с помощью code-builder.
* Пользователь: 恒宇少年
* Дата: Jul 17, 2018 9:09:13 PM
* Краткая книга: http://www.jianshu.com/u/092df3f77bca
* Облако кода: https://gitee.com/hengboy
* ================================
*/
@Data
public class BalanceTypeEntity {
/**
* BT_ID — первичный ключ типа баланса
*/
private String btId;
/**
* BT_NAME — название типа баланса
*/
private String btName;
/**
* BT_FLAG — идентификатор типа баланса
*/
private String btFlag;
/**
* BT_CREATE_TIME — время добавления
*/
private Timestamp btCreateTime;
/**
* BT_MARK — примечание к типу баланса
*/
private String btMark;
}
### Где находятся созданные классы сущностей?
Созданные классы сущностей находятся в каталоге target/generated-sources/java. Если вы настроите параметр packagePrefix, то в созданном каталоге автоматически будет создана подпапка с именем packagePrefix.
Например:
com.code.builder.sample
Тогда конечный созданный корневой каталог будет: target/generated-sources/java/com/code/builder/sample
### Как использовать?
#### Способ SpringBoot
1. Запустите проект, чтобы создать соответствующие файлы на основе конфигурации.
#### Способ Maven Plugin
1. Выполните команду mvn clean для очистки содержимого каталога target.
2. Выполните команду mvn compile для компиляции проекта и создания классов сущностей.
### Почему способ SpringBoot не требует настройки информации о базе данных?
Способ Maven Plugin использует настроенную информацию о соединении с базой данных и драйвер соединения для получения объекта соединения Connection, а затем работает с метаданными JDBC.
В то же время способ SpringBoot напрямую использует экземпляр объекта DataSource, настроенный в проекте, для получения объекта подключения Connection, а затем работает с метаданными JDBC.
> Обратите внимание: если у вас многопроектная среда, по умолчанию будет использоваться экземпляр первичного источника данных.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )