MyBatis-Generator — это инструмент генерации кода, предоставляемый MyBatis, который может помочь нам создавать постоянные объекты (также называемые моделью, PO), соответствующие таблицам базы данных, интерфейсы (dao) для работы с базой данных и сопоставитель для простого SQL (форма XML или аннотация). форма)).
MyBatis-Generator (часто сокращенно MBG или mbg) — это автономный инструмент, который можно загрузить для запуска в виде пакета jar, а также в Ant и Maven. Его официальный сайт:mybatis.org/generator/
1. Представьте MyBatis-Generator и среду
Для этого сообщения в блоге я использую SpringBootпроект МавенIDE настраивается, используется и объясняется в среде, а используемой IDE является IntelliJ IDEA.
Поскольку необходимо использовать MyBatis-Generator, в проекте должны использоваться MyBatis и определенная база данных, и эти зависимости должны быть настроены в Maven. Например, конфигурация в файле pom:
<dependencies>
<!-- 为了方便,不展示其它配置... -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
</dependencies>
Для введения MyBatis-Generator в проект Maven, вот введениеДва пути, какой метод вам нужен, зависит от того, какой метод, который вы используете для запуска инструмента MyBatis-Generator: (для того, как запустить инструмент MyBatis-Generator, см. Раздел 3 этой статьи)
1. Способ 1: Импорт зависимостей в Maven
Этот метод подходит для: запуска инструмента MyBatis-Generator с кодом Java. Внесите зависимость mybatis-generator-core в файл pom:
<dependencies>
<!-- 为了方便,不展示其它配置... -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
</dependencies>
2. Способ 2: Внедрение плагинов в Maven
Этот метод подходит для: запуска инструмента MyBatis-Generator через плагины проекта Maven или командную строку Maven. Внесите подключаемый модуль mybatis-generator-maven-plugin в файл pom:
<build>
<!-- 为了方便,不展示其它配置... -->
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
</plugin>
</plugins>
</build>
2. Конфигурационный файл MyBatis-Generator
MyBatis-Generator нуждается в файле конфигурации xml для настройки различных деталей сгенерированного кода. Например, вКаталог ресурсов проектаСоздайте новый файл конфигурации mybatis-generator-config.xml:
Его содержание следующее:
<?xml version="1.0" encoding="UTF-8"?>
<!-- MyBatis-Generator 相关配置 -->
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<!-- 所有的配置均在根元素 generatorConfiguration 下 -->
<generatorConfiguration>
...
...
</generatorConfiguration>
В этом файле все конфигурации находятся в корневом элементе generateConfiguration. Генератор конфигурации корневого элемента имеет 3 подэлемента, которые можно настроить, эти 3 подэлемента должны быть такими, как указано ниже.номер и порядокДля настройки :(Да, у MyBatis-Generator тоже есть строгие требования к порядку настройки)
- properties(0 или 1), может встречаться 0 или 1 раз.
- classPathEntry(0...N), что может встречаться 0 и более раз.
- context(1...N), что встречается хотя бы 1 раз.
Среди них свойства и элементы classPathEntry используются для представления внешних конфигураций или файлов; контекст является основным элементом, который содержит различные подробные конфигурации.
1. Внедрить внешние файлы конфигурации
При настройке MyBatis-Generator можно вводить внешние конфигурации или файлы.
элемент свойств
Свойства элемента можно использовать для загрузки внешних элементов конфигурации или файлов конфигурации.Этот элемент имеет два свойства, каждое из которых используется для указания адреса внешнего файла конфигурации:
- ресурс: сделать поиск MBG из пути к классам; обычно можно использовать относительный путь относительно текущего файла конфигурации xml.
- URL-адрес: в виде URL-адреса, например, можно использовать файловый протокол
file:///Users/deecyn/Files/mybatis-generator.properties
Найти локально со своего компьютера, либо в Интернете по протоколу http и т.д.
Обратите внимание, что эти два свойствавыбрать только одиниспользовать. Например, импортируйте файл конфигурации mybatis-generator.properties, показанный на следующем рисунке:
Код для импорта файла выглядит следующим образом:<!-- 引入外部配置文件 -->
<properties resource="mybatis-generator.properties"/>
Затем во всем файле конфигурации xml вы можете передать${propertyKey}
способ ссылки на элементы конфигурации.
элемент classPathEntry
С помощью элемента classPathEntry можно загрузить дополнительные необходимые зависимости во время работы MBG. Среди них атрибут location указывает полный путь к загружаемому jar/zip-пакету. Например:
<!-- 加载需要的额外的依赖包 -->
<classPathEntry location="/Users/deecyn/Files/db2java.zip"/>
2. Настройте основные элементы контекста
Среди дочерних элементов GenerationConfiguration контекст является основным элементом, который настраивает среду, в которой генерируется набор объектов. Контекст элемента имеет 4 свойства для настройки:
- id, требуется, идентификатор контекста используется для запроса при возникновении ошибки; просто убедитесь, что идентификаторы нескольких контекстов не повторяются.
-
targetRuntime, необязательно, эта конфигурация повлияет на содержимое сгенерированного дао и mapper.xml. Общие значения:
- MyBatis3, значение по умолчанию, генерирует контент на основе MyBatis 3.x и выше, включая множество методов dao, подобных XxxByExample.
- MyBatis3Simple похож на MyBatis3, но не генерирует метод dao, аналогичный XxxByExample,Обычно лучше не генерировать эти сложные методы.
- Существуют и другие настраиваемые значения, см.Официальный сайт.
-
defaultModelType, необязательный, используется для указания стиля сгенерированного объекта. Его значение:
- условный, по умолчанию, аналогичный иерархическому. Отличие в том, что для таблиц БД только с одним полем не создается отдельный класс.
- иерархический, первичный ключ генерирует объект XxxKey (класс ключа), такие поля, как Blob, генерируют отдельный объект, а другие простые атрибуты находятся в объекте (класс записи).
- flat, все поля (первичные ключи, большие двоичные объекты и т. д.) генерируются в одном объекте.
- introspectedColumnImpl, необязательное, полное имя класса, используемое дляРасширенный ГБГ.
Пример конфигурации выглядит следующим образом:
<context id="MySqlContext" targetRuntime="MyBatis3" defaultModelType="flat">
...
</context>
дочерние элементы контекста
В контексте элемента необходимо настроить несколько подэлементов. Аналогично, дочерние элементы контекста должны быть такими, как указано ниже.номер и порядокЧтобы настроить:
- property (0...N)
- plugin (0...N)
- commentGenerator (0 or 1)
- connectionFactoryиjdbcConnection, выберите один для настройки
- javaTypeResolver (0 or 1)
- javaModelGenerator(с и только 1 раз)
- sqlMapGenerator (0 or 1)
- javaClientGenerator (0 or 1)
- table (1...N)
Видно, что требуется настройка javaModelGenerator, таблицы и элементов соединения.
элемент свойства
Используется для указания свойств для генерации кода или для указания свойств других элементов. Можно настроить ноль или более.Общие конфигурации свойств следующие:
<!-- 自动识别数据库关键字,默认为 false,一般保留默认值,遇到数据库关键字(Java关键字)时,按照 table 元素中 columnOverride 属性的配置进行覆盖;
如果设置为 true, 则需按照 SqlReservedWords 中定义的关键字列表,对关键字进行定界(分隔);
定界符(分隔符)参见 beginningDelimiter 和 endingDelimiter 的设置-->
<property name="autoDelimitKeywords" value="false"/>
<!-- beginningDelimiter 和 endingDelimiter,定界符(分隔符),指明用于标记数据库关键字的符号,默认为为双引号 (");
在 oracle 中是双引号 ("),在 MySQL 中需配置为反引号 (`) -->
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<!-- 生成的 Java 文件的编码 -->
<property name="JavaFileEncoding" value="UTF-8"/>
<!-- 格式化 Java 代码 -->
<property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
<!-- 格式化 XML 代码 -->
<property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
Примечание:SQLRESERVEDWORDS Список ключевых слов
элемент плагина
Плагинов конфигурации может быть ноль или больше. Общие конфигурации плагинов:
<!-- 使生成的 Model 实现 Serializable 接口 -->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
<!-- 为生成的 Model 覆写 toString() 方法 -->
<plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>
<!-- 为生成的 Model 覆写 equals() 和 hashCode() 方法 -->
<plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin"/>
элемент commentGenerator
Для настройки сгенерированных аннотаций можно настроить значение 0 или 1. По умолчанию аннотации создаются, и к аннотациям добавляется такая информация, как время. Если вы хотите использовать конфигурацию комментариев по умолчанию, вы можете не настраивать элемент commentGenerator. В противном случае вы можете настроить следующим образом:
<commentGenerator>
<!-- 不生成所有注释,默认为 false -->
<property name="suppressAllComments" value="true"/>
<!-- 生成的注释中不包含时间信息,默认为 false -->
<property name="suppressDate" value="true"/>
<!-- 生成的注释中,时间的显示格式 -->
<property name="dateFormat" value="yyyy/MM/dd"/>
<!-- 是否添加数据库表中字段的注释,默认为 false -->
<property name="addRemarkComments" value="true"/>
</commentGenerator>
Конечно, вы также можетеГенератор пользовательских аннотаций.
элемент jdbcConnection
Настройте подключение к базе данных следующим образом:
<!-- 配置数据库连接 -->
<jdbcConnection driverClass="${jdbc.driverClass}"
connectionURL="${jdbc.connectionURL}"
userId="${jdbc.userId}"
password="${jdbc.password}">
<!-- 若为 8.0 版本以上的 mysql-connector-java 驱动,需要设置 nullCatalogMeansCurrent = true -->
<!-- <property name="nullCatalogMeansCurrent" value="true"/> -->
</jdbcConnection>
в,${propertyKey}
Внутри находится свойствоValue в указанном внешнем файле конфигурации:
Можно и мертвый написать, тогда не надо<properties resource=""/>
Представлен в этом файле.
Здесь стоит отметить, что<property name="nullCatalogMeansCurrent" value="true"/>
, когда драйвер mysql-connector-java выше версии 8.0, если этот элемент не настроен как true, Mapper для таблицы в указанной базе данных не будет создан. По конкретным причинам, пожалуйста, обратитесь к статье:MyBatis Generator наступает на яму и самоспасается.
элемент javaTypeResolver
Для настройки правил преобразования типов из JDBC в Java можно настроить 0 или 1. Если настройка не выполняется, используются правила преобразования по умолчанию, которые используются по умолчанию.org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl
.
Даже если вы хотите настроить его, вы можете настроить только преобразование BigDecimal и типов времени:
<javaTypeResolver>
<!-- 是否强制使用 BigDecimal;
默认为 false,把 JDBC 的 DECIMAL 和 NUMERIC 类型解析为 Integer;
设置为 true 时,把 JDBC 的 DECIMAL 和 NUMERIC 类型解析为 java.math.BigDecimal
-->
<property name="forceBigDecimals" value="true"/>
<!-- 设置时间类型的转换,
默认 false,将所有 JDBC 的时间类型解析为 java.util.Date;
设置为 true 时,将 JDBC 的时间类型按如下规则解析:
DATE -> java.time.LocalDate
TIME -> java.time.LocalTime
TIMESTAMP -> java.time.LocalDateTime
TIME_WITH_TIMEZONE -> java.time.OffsetTime
TIMESTAMP_WITH_TIMEZONE -> java.time.OffsetDateTime
-->
<property name="useJSR310Types" value="true"/>
</javaTypeResolver>
Элемент JavamodelGenerator
Существует один и только один генератор моделей Java, который отвечает за создание ключевых классов (см. атрибут defaultModelType элемента контекста), классов сущностей Java Bean и классов запросов.
Элемент javaModelGenerator имеет два свойства:
- targetPackage: пакет, который будет помещен в сгенерированный класс, на конкретный пакет влияет подэлемент enableSubPackages;
- targetProject: целевой проект с указанием существующего каталога. (Конфигурация пути targetProject будет иметь некоторые отличия для разных методов запуска MBG. Подробнее см. Раздел 3: Запуск MyBatis-Generator)
Несколько подэлементов свойств также можно настроить в элементе javaModelGenerator, конкретный код выглядит следующим образом:
<!-- 配置 Java 模型生成器 -->
<javaModelGenerator targetPackage="deecyn.shop_02.mbg.model" targetProject="src/main/java">
<!-- 自动为每一个生成的类创建一个构造方法,构造方法包含了所有的 field,而不是使用 setter;
默认值为 false -->
<property name="constructorBased" value="false"/>
<!-- 在 targetPackage 的基础上,根据数据库的 schema 再生成一层 package,
最终生成的类放在这个package下;默认为false -->
<property name="enableSubPackages" value="false"/>
<!-- 是否创建一个不可变的类:如果为true,那么 MBG 生成的类会没有 setter 方法,
采用构造函数的方式来接收和设置每个字段的值,此时会忽略 constructorBased 属性的设置;
默认值为 false -->
<property name="immutable" value="false"/>
<!-- 设置在 getter 方法中,是否对 String 类型的字段调用 trim() 方法;默认为 false -->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
элемент sqlMapGenerator
0 или 1 можно настроить для создания генератора XML-файлов SQL Map. После MyBatis3 мы можем использовать файл mapper.xml + интерфейс Mapper или просто использовать интерфейс Mapper + Annotation, поэтому, если элемент javaClientGenerator настроен на генерацию xml, этот элемент должен быть настроен.
Этот элемент имеет два атрибута, целевой ресурс и наценок PROJPROJECT. Принцип совпадает с элементом JavamodelGenerator, за исключением того, что он относится к пути, в котором файл mapper.xml сохраняется в каталоге ресурсов. Конкретный код выглядит следующим образом:
<!-- SQL Map 的 xml 文件生成器 -->
<sqlMapGenerator targetPackage="mbg-mapper" targetProject="src/main/resources">
<!-- 同 javaModelGenerator 元素中的配置 -->
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
Элемент javaClientGenerator
Для настройки генерации интерфейса Mapper можно настроить 0 или 1. Если этот элемент не настроен, интерфейс Mapper не будет генерироваться по умолчанию.
Элемент javaClientGenerator имеет атрибуты 3. Конфигурация атрибутов targetPackage и targetProject такая же, как и у элемента javaModelGenerator, за исключением того, что она ссылается на путь, по которому интерфейс Mapper хранится в каталоге java. Что касается атрибута типа, есть 3 необязательных значения:
- ANNOTATEDMAPPER, файл создается с использованием интерфейса Mapper + Annotation, SQL создается в соответствующей аннотации, а файл xml не создается.
- MIXEDMAPPERИспользуя смешанную конфигурацию, создается интерфейс сопоставления и добавляется соответствующая аннотация, а в XML-файле будет генерация SQL.
- XMLMAPPERИнтерфейс Mapper будет сгенерирован, и интерфейс полностью зависит от файла XML.
Обратите внимание, что поддерживаются только ANNOTATEDMAPPER и XMLMAPPER, если для атрибута defaultModelType элемента контекста установлено значение MyBatis3Simple.Обычно рекомендуется установить тип XMLMAPPER..
<!-- 关于 Mapper 接口的生成 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="deecyn.shop_02.mbg.mapper"
targetProject="src/main/java">
<!-- 同 javaModelGenerator 元素中的配置 -->
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
элемент таблицы
Элемент таблицы соответствует таблице базы данных. Если вы хотите сгенерировать код для нескольких таблиц одновременно, вам необходимо настроить несколько элементов таблицы или вы можете установить для tableName значение %, чтобы сгенерировать код для всех таблиц.
Таблица элементов, за исключением обязательного атрибутаtableName(имя таблицы базы данных) необходимо установить, есть еще многопо желаниюсвойства, некоторые свойства следующие:
- схема, схема базы данных;
- каталог, каталог базы данных;
- domainObjectName: имя сгенерированного класса домена, если оно не задано, напрямую используйте верблюжий регистр имени таблицы в качестве имени класса домена; его можно установить как somepackage.domainName, тогда класс domainName будет автоматически помещен в некоторый пакет пакетов;
- enableSelectByExample, по умолчанию — true, MyBatis3Simple — false, укажите, следует ли генерировать операторы динамического запроса;
- enableUpdateByPrimaryKey, значение по умолчанию равно true, указывает, следует ли генерировать оператор для изменения объекта в соответствии с первичным ключом (т.е. обновление);
- EnableDeletebyexample, по умолчанию true, mybatis3simple — false, укажите, следует ли генерировать оператор динамического удаления;
- enableCountByExample, значение по умолчанию — true, а MyBatis3Simple — значение false, указывающее, следует ли генерировать оператор общего числа динамического запроса (запрос общего числа для пейджинга);
- enableUpdateByExample, по умолчанию — true, MyBatis3Simple — false, укажите, следует ли генерировать оператор динамической модификации (изменять только те атрибуты, которые не являются пустыми в объекте);
- modelType, обратитесь к defaultModelType элемента контекста, что эквивалентно его переопределению.
Кроме того, в элементе таблицы можно настроить несколько подэлементов, таких как свойство и columnOverride. Пример кода выглядит следующим образом:
<!-- 配置需要生成代码的数据库表 -->
<table tableName="pms_brand" domainObjectName="PmsBrand"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
<!-- 指定是否只生成 domain 类,默认为 false;
如果设置为 true,则只生成 domain 类,如果还配置了sqlMapGenerator,那么
在 mapper.xml 文件中,只生成 resultMap 元素 -->
<property name="modelOnly" value="false"/>
<!-- 默认为 false;如果设置为 true,生成的 model 类会直接使用 column 本身的名字,而不会再使用驼峰命名方法。比如 CREATE_DATE,生成的属性名字就是 CREATE_DATE,而不会是 createDate -->
<property name="useActualColumnNames" value="false"/>
<!-- 生成主键的方法,如果设置了该元素,MBG 会在生成的 <insert> 元素中生成一条正确的 <selectKey> 元素 -->
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
<!-- 用来修改表中某个列的属性,MBG 会根据修改后的配置来生成 domain 的属性;
column:要重新设置的列名;一个 table 元素中可以定义多个 columnOverride 元素哈 -->
<columnOverride column="show_status">
<!-- 使用 property 属性来指定列要生成的属性名称 -->
<property name="property" value="showStatus"/>
<!-- javaType 用于指定生成的 domain 的属性类型,使用类型的全限定名-->
<property name="javaType" value="java.lang.Integer"/>
<!-- jdbcType用于指定该列的JDBC类型
<property name="jdbcType" value=""/>
-->
</columnOverride>
</table>
3. Запустите MyBatis-генератор
Для MyBatis-Generator разные режимы работы, конфигурация проекта и будут некоторые отличия между файлами, запускайте MBG В этой статье описаны два способа.
Способ 1: программный запуск с кодом Java
Чтобы запустить MBG таким образом, в первом разделе этой статьи при знакомстве с MyBatis-Generator нужно ввести зависимости в pom-файле Maven по методу 1:
<dependencies>
<!-- 为了方便,不展示其它配置... -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
</dependencies>
Затем создайте в проекте новый класс Java с кодом, подобным следующему:
package deecyn.shop_02.mbg;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
public class Generator {
public static void main(String[] args) throws Exception {
// MBG 执行过程中的警告信息
List<String> warnings = new ArrayList<String>();
// 当生成的代码重复时,覆盖原代码
boolean overwrite = true;
// 读取我们的 MBG 配置文件
InputStream is = Generator.class.getResourceAsStream("/mybatis-generator-config.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(is);
is.close();
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
//创建 MBG
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
//执行生成代码
myBatisGenerator.generate(null);
//输出警告信息
for (String warning : warnings) {
System.out.println(warning);
}
}
}
Запустите метод main() в классе, чтобы сгенерировать соответствующий код в соответствующем каталоге.
должен быть в курсе, если в вашем проекте несколько модулей, вам необходимо добавить префикс к имени текущего модуля при настройке атрибута targetProject элементов javaModelGenerator, sqlMapGenerator и javaClientGenerator. Например, если имя текущего модуля — shop_02:
<javaModelGenerator targetPackage="deecyn.shop_02.mbg.model" targetProject="shop_02/src/main/java"/>
<sqlMapGenerator targetPackage="mbg-mapper" targetProject="shop_02/src/main/resources"/>
<javaClientGenerator type="XMLMAPPER" targetPackage="deecyn.shop_02.mbg.mapper"
targetProject="shop_02/src/main/java"/>
В противном случае появится сообщение о том, что соответствующие каталоги java и ресурсов не найдены.
Способ 2: запустить через плагин Maven
Чтобы запустить MBG таким способом, в первом разделе этой статьи при внедрении MyBatis-Generator необходимо внедрить плагин в pom-файл Maven по второму способу, а также произвести некоторую настройку:
<build>
<!-- 为了方便,不展示其它配置... -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<configuration>
<!-- 引入 MyBatis-Generator 的配置文件 -->
<configurationFile>./src/main/resources/generatorConfig.xml</configurationFile>
<!-- 允许 MBG 将构建消息写入日志中 -->
<verbose>true</verbose>
<!-- 再次运行 MBG 时,允许覆盖已生成的文件,但是不会覆盖 xml 文件 -->
<overwrite>true</overwrite>
</configuration>
<dependencies>
<!-- 引入 mysql 的 JDBC 驱动,否则会报错找不到驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
</dependencies>
</plugin>
</build>
После настройки дважды щелкните MyBatis-Generator в Maven --> Плагины для запуска:
Соответствующий код может быть сгенерирован в соответствующем каталоге.
должен быть в курсе, в настоящее время при настройке атрибута targetProject элементов javaModelGenerator, sqlMapGenerator и javaClientGenerator их пути относятся к текущему проекту или модулю, и префикс не требуется. Например, если имя текущего модуля — shop_02:
<javaModelGenerator targetPackage="deecyn.shop_02.mbg.model" targetProject="src/main/java"/>
<sqlMapGenerator targetPackage="mbg-mapper" targetProject="src/main/resources"/>
<javaClientGenerator type="XMLMAPPER" targetPackage="deecyn.shop_02.mbg.mapper"
targetProject="src/main/java"/>
В противном случае появится сообщение о том, что соответствующие каталоги java и ресурсов не найдены.
В-четвертых, полная ссылка на файл конфигурации
1. Полный файл конфигурации pom
Ссылка на ссылку:Notes: mybatis-generator-pom
2. Заполните конфигурационный файл MyBatis-Generator.
Ссылка на ссылку:Notes: mybatis-generator-config
5. Ссылка
- Nuggets: сверхдетальная конфигурация MyBatis Generator
- Краткая книга: полная информация о конфигурации Mybatis Generator
- Официальный сайт MyBatis Generator, для получения более подробной информации о настройке рекомендуется ознакомиться с инструкциями на официальном сайте.
(Конец) Если у вас есть какие-либо вопросы, добро пожаловать на общение~