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

OSCHINA-MIRROR/hengboy-code-builder

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

Перевод текста на русский язык:

Сервис.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: не ключ

  • foreignKey является ли внешним ключом, тип данных: java.lang.Boolean, true: внешний ключ, false: не внешний ключ
  • size длина столбца, тип данных: java.lang.Integer
  • decimalDigits точность до десятичной точки, тип данных: java.lang.Integer
  • nullable столбец может быть пустым, тип данных: java.lang.Boolean, true: может быть пустым, false: не может быть пустым
  • autoincrement автоматическое увеличение, тип данных: java.lang.Boolean, true: столбец с автоматическим увеличением, false: обычный столбец
  • defaultValue значение по умолчанию, тип данных: java.lang.String
  • remark примечание к столбцу, тип данных: java.lang.String
  • jdbcType тип JDBC, соответствующий типу java.sql.Types, тип данных: java.lang.Integer
  • jdbcTypeName имя типа JDBC, тип данных: java.lang.String
  • javaProperty форматированное имя свойства, например: userId, тип данных: java.lang.String
  • javaType краткое имя типа Java, например: TimeStamp, тип данных: java.lang.String
  • fullJavaType полное имя типа Java, например: java.sql.TimeStamp, тип данных: java.lang.String
Использование

freemarker шаблон: ${column.xxx}, например, использование имени столбца: ${column.columnName}

Основные параметры

  • className: класс, freemarker указывает имя класса для создания файла шаблона, конфигурация в шаблоне: ${className} используется
  • packageName: пакет, freemarker определяет имя пакета для создания файла шаблона, конфигурация в шаблоне: ${packageName} используется

Как настроить шаблон?

Ниже приведён простой пример шаблона, который можно настроить в соответствии с встроенными параметрами.

<#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 )

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

Введение

Code-builder — это Maven-плагин для генерации кода, адаптированный к основным современным базам данных, и SpringBoot Starter. Он предоставляет все встроенные атрибуты для стопроцентной кастомизации шаблонов с целью создания соответствующего кода и автоматической генерации файлов. Развернуть Свернуть
Apache-2.0
Отмена

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

все

Участники

все

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

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