From 4d0efd10057b81d6c38c212ade0de31b732a6a9d Mon Sep 17 00:00:00 2001 From: Suomm <1474983351@qq.com> Date: Mon, 21 Aug 2023 10:05:02 +0800 Subject: [PATCH 1/2] =?UTF-8?q?style:=20=E5=AE=8C=E5=96=84=20ColumnConfig?= =?UTF-8?q?=20=E7=B1=BB=E6=B3=A8=E9=87=8A=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mybatisflex/codegen/config/ColumnConfig.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/ColumnConfig.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/ColumnConfig.java index 2352fc86..dfc1f7a7 100644 --- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/ColumnConfig.java +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/ColumnConfig.java @@ -62,12 +62,15 @@ public class ColumnConfig implements Serializable { private JdbcType jdbcType; /** - * 属性的类型。 + *
属性的类型。 + * + *
原始类型直接写类型名称,例如:int/long/float/double/boolean 属性的类型。
+ *
+ * 原始类型直接写类型名称,例如:int/long/float/double/boolean
+ * 对象类型请写对应类的全限定名,例如:java.lang.String/com.example.enums.Gender
*/
private String propertyType;
/**
- * 属性的默认值
+ * 属性的默认值,例如:long 类型默认值:0L,枚举类型默认值:Gender.MALE。
*/
private String propertyDefaultValue;
From 683515b367e8aab76054ce20ff50a328ba7a4c81 Mon Sep 17 00:00:00 2001
From: Suomm <1474983351@qq.com>
Date: Mon, 21 Aug 2023 10:05:22 +0800
Subject: [PATCH 2/2] =?UTF-8?q?doc:=20=E5=AE=8C=E5=96=84=20=E4=BB=A3?=
=?UTF-8?q?=E7=A0=81=E7=94=9F=E6=88=90=E5=99=A8=20=E6=96=87=E6=A1=A3?=
=?UTF-8?q?=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/zh/others/codegen.md | 221 ++++++++++++++++++++++++++------------
1 file changed, 150 insertions(+), 71 deletions(-)
diff --git a/docs/zh/others/codegen.md b/docs/zh/others/codegen.md
index 6cd23350..5021527b 100644
--- a/docs/zh/others/codegen.md
+++ b/docs/zh/others/codegen.md
@@ -196,17 +196,18 @@ globalConfig.enableEntity()
## 注释配置 `JavadocConfig`
-| 配置 | 描述 | 默认值 |
-|---------------------------------|-----------------|---------------------------------|
-| setAuthor(String) | 作者 | System.getProperty("user.name") |
-| setSince(String) | 自 | 日期(yyyy-MM-dd) |
-| setTableCommentFormat(Function) | 表名格式化 | 原表名 |
-| setEntityPackage(String) | Entity 包注释 | "实体类层(Entity)软件包。" |
-| setMapperPackage(String) | Mapper 包注释 | "映射层(Mapper)软件包。" |
-| setServicePackage(String) | Service 包注释 | "服务层(Service)软件包。" |
-| setServiceImplPackage(String) | ServiceImpl 包注释 | "服务层实现(ServiceImpl)软件包。" |
-| setControllerPackage(String) | Controller 包注释 | "控制层(Controller)软件包。" |
-| setTableDefPackage(String) | TableDef 包注释 | "表定义层(TableDef)软件包。" |
+| 配置 | 描述 | 默认值 |
+|----------------------------------|-----------------|---------------------------------|
+| setAuthor(String) | 作者 | System.getProperty("user.name") |
+| setSince(String) | 自 | 日期(yyyy-MM-dd) |
+| setTableCommentFormat(Function) | 表注释格式化 | 原表注释 |
+| setColumnCommentFormat(Function) | 字段注释格式化 | 原字段注释 |
+| setEntityPackage(String) | Entity 包注释 | "实体类层(Entity)软件包。" |
+| setMapperPackage(String) | Mapper 包注释 | "映射层(Mapper)软件包。" |
+| setServicePackage(String) | Service 包注释 | "服务层(Service)软件包。" |
+| setServiceImplPackage(String) | ServiceImpl 包注释 | "服务层实现(ServiceImpl)软件包。" |
+| setControllerPackage(String) | Controller 包注释 | "控制层(Controller)软件包。" |
+| setTableDefPackage(String) | TableDef 包注释 | "表定义层(TableDef)软件包。" |
```java
globalConfig.getJavadocConfig()
@@ -216,17 +217,17 @@ globalConfig.getJavadocConfig()
## 包配置 `PackageConfig`
-| 配置 | 描述 | 默认值 |
-|-------------------------------|----------------|---------------------------------------------------|
-| setSourceDir(String) | 文件输出目录 | System.getProperty("user.dir") + "/src/main/java" |
-| setBasePackage(String) | 根包名 | "com.mybatisflex" |
-| setEntityPackage(String) | Entity 包名 | getBasePackage() + ".entity" | |
-| setMapperPackage(String) | Mapper 包名 | getBasePackage() + ".mapper" | |
-| setServicePackage(String) | Service 包名 | getBasePackage() + ".service" | |
-| setServiceImplPackage(String) | ServiceImpl 包名 | getBasePackage() + ".service.impl" | |
-| setControllerPackage(String) | Controller 包名 | getBasePackage() + ".controller" | |
-| setTableDefPackage(String) | TableDef 包名 | getEntityPackage() + ".tables" | |
-| setMapperXmlPath(String) | MapperXml 路径 | getSourceDir() + "/resources/mapper" | |
+| 配置 | 描述 | 默认值 |
+|-------------------------------|----------------|---------------------------------------------------------------|
+| setSourceDir(String) | 文件输出目录 | System.getProperty("user.dir") + "/src/main/java" |
+| setBasePackage(String) | 根包名 | "com.mybatisflex" |
+| setEntityPackage(String) | Entity 包名 | getBasePackage() + ".entity" | |
+| setMapperPackage(String) | Mapper 包名 | getBasePackage() + ".mapper" | |
+| setServicePackage(String) | Service 包名 | getBasePackage() + ".service" | |
+| setServiceImplPackage(String) | ServiceImpl 包名 | getBasePackage() + ".service.impl" | |
+| setControllerPackage(String) | Controller 包名 | getBasePackage() + ".controller" | |
+| setTableDefPackage(String) | TableDef 包名 | getEntityPackage() + ".tables" | |
+| setMapperXmlPath(String) | MapperXml 路径 | System.getProperty("user.dir") + "/src/main/resources/mapper" | |
```java
globalConfig.getPackageConfig()
@@ -243,10 +244,11 @@ globalConfig.getPackageConfig()
| setVersionColumn(String) | 乐观锁的字段名称 | null |
| setGenerateForView(boolean) | 是否生成视图映射 | false |
| setTableConfig(TableConfig) | 单独为某张表添加独立的配置 | null |
-| setGenerateSchema(String) | 生成哪个schema下的表 | null |
| setColumnConfig(ColumnConfig) | 设置某个列的全局配置 | null |
+| setGenerateSchema(String) | 生成哪个schema下的表 | null |
| setGenerateTables(String...) | 生成哪些表,白名单 | null |
| setUnGenerateTables(String...) | 不生成哪些表,黑名单 | null |
+| setIgnoreColumns(String...) | 需要忽略的列,父类定义的字段 | null |
```java
globalConfig.getStrategyConfig()
@@ -278,14 +280,18 @@ globalConfig.getTemplateConfig()
## Entity 生成配置 `EntityConfig`
-| 配置 | 描述 | 默认值 |
-|-----------------------------|----------------------------------|--------------------|
-| setClassPrefix(String) | Entity 类的前缀 | "" |
-| setClassSuffix(String) | Entity 类的后缀 | "" |
-| setSuperClass(Class) | Entity 类的父类,可以自定义一些 BaseEntity 类 | null |
-| setOverwriteEnable(boolean) | 是否覆盖之前生成的文件 | false |
-| setImplInterfaces(Class[]) | Entity 默认实现的接口 | Serializable.class |
-| setWithLombok(boolean) | Entity 是否使用 Lombok 注解 | false |
+| 配置 | 描述 | 默认值 |
+|------------------------------------------------|----------------------------------|--------------------|
+| setClassPrefix(String) | Entity 类的前缀 | "" |
+| setClassSuffix(String) | Entity 类的后缀 | "" |
+| setSuperClass(Class) | Entity 类的父类,可以自定义一些 BaseEntity 类 | null |
+| setOverwriteEnable(boolean) | 是否覆盖之前生成的文件 | false |
+| setImplInterfaces(Class[]) | Entity 默认实现的接口 | Serializable.class |
+| setWithLombok(boolean) | Entity 是否使用 Lombok 注解 | false |
+| setWithSwagger(boolean) | Entity 是否使用 Swagger 注解 | false |
+| setSwaggerVersion(EntityConfig.SwaggerVersion) | Swagger 注解版本 | SwaggerVersion.FOX |
+| setWithActiveRecord(boolean) | 是否生成 Active Record 模式的 Entity | false |
+| setDataSource(String) | 统一使用的数据源 | null |
```java
globalConfig.getEntityConfig()
@@ -297,12 +303,13 @@ globalConfig.getEntityConfig()
## Mapper 生成配置 `MapperConfig`
-| 配置 | 描述 | 默认值 |
-|-----------------------------|-------------|------------------|
-| setClassPrefix(String) | Mapper 类的前缀 | "" |
-| setClassSuffix(String) | Mapper 类的后缀 | "Mapper" |
-| setSuperClass(Class) | Mapper 类的父类 | BaseMapper.class |
-| setOverwriteEnable(boolean) | 是否覆盖之前生成的文件 | false |
+| 配置 | 描述 | 默认值 |
+|------------------------------|-----------------|------------------|
+| setClassPrefix(String) | Mapper 类的前缀 | "" |
+| setClassSuffix(String) | Mapper 类的后缀 | "Mapper" |
+| setSuperClass(Class) | Mapper 类的父类 | BaseMapper.class |
+| setOverwriteEnable(boolean) | 是否覆盖之前生成的文件 | false |
+| setMapperAnnotation(boolean) | 是否生成 @Mapper 注解 | false |
```java
globalConfig.getMapperConfig()
@@ -317,7 +324,7 @@ globalConfig.getMapperConfig()
|-----------------------------|--------------|----------------|
| setClassPrefix(String) | Service 类的前缀 | "" |
| setClassSuffix(String) | Service 类的后缀 | "Service" |
-| setSuperClass(Class) | Service 类的父类 | IService.class |
+| setSuperClass(Class) | Service 类的父类 | IService.class |
| setOverwriteEnable(boolean) | 是否覆盖之前生成的文件 | false |
```java
@@ -333,7 +340,7 @@ globalConfig.getServiceConfig()
|-----------------------------|------------------|-------------------|
| setClassPrefix(String) | ServiceImpl 类的前缀 | "" |
| setClassSuffix(String) | ServiceImpl 类的后缀 | "ServiceImpl" |
-| setSuperClass(Class) | ServiceImpl 类的父类 | ServiceImpl.class |
+| setSuperClass(Class) | ServiceImpl 类的父类 | ServiceImpl.class |
| setOverwriteEnable(boolean) | 是否覆盖之前生成的文件 | false |
| setCacheExample(boolean) | 是否添加缓存示例代码 | false |
@@ -350,7 +357,7 @@ globalConfig.getServiceImplConfig()
|-----------------------------|---------------------|--------------|
| setClassPrefix(String) | Controller 类的前缀 | "" |
| setClassSuffix(String) | Controller 类的后缀 | "Controller" |
-| setSuperClass(Class) | Controller 类的父类 | null |
+| setSuperClass(Class) | Controller 类的父类 | null |
| setOverwriteEnable(boolean) | 是否覆盖之前生成的文件 | false |
| setRestStyle(boolean) | REST 风格的 Controller | true |
@@ -366,7 +373,7 @@ globalConfig.getControllerConfig()
| 配置 | 描述 | 默认值 |
|--------------------------------------------------|----------------|-------------------------------------------|
| setClassPrefix(String) | TableDef 类的前缀 | "" |
-| setClassSuffix(String) | TableDef 类的后缀 | "TableDef" |
+| setClassSuffix(String) | TableDef 类的后缀 | "TableDef" |
| setOverwriteEnable(boolean) | 是否覆盖之前生成的文件 | false |
| setPropertiesNameStyle(TableDefConfig.NameStyle) | 生成辅助类的字段风格 | TableDefConfig.NameStyle.LOWER_CAMEL_CASE |
| setInstanceSuffix(String) | 生成辅助类常量对应的变量后缀 | "" |
@@ -398,26 +405,46 @@ TableConfig 支持的配置如下:
```java
public class TableConfig {
+ /**
+ * 表名。
+ */
private String tableName;
/**
- * 数据库的 schema(模式)
+ * 数据库的 schema(模式)。
*/
private String schema;
/**
- * 默认为 驼峰属性 转换为 下划线字段
+ * 默认为 驼峰属性 转换为 下划线字段。
*/
private Boolean camelToUnderline;
-
+ /**
+ * 监听 entity 的 insert 行为。
+ */
private Class extends InsertListener> insertListenerClass;
-
+ /**
+ * 监听 entity 的 update 行为。
+ */
private Class extends UpdateListener> updateListenerClass;
- // 是否启用ATP生成Mapper
+ /**
+ * 监听 entity 的查询数据的 set 行为。
+ */
+ private Class extends SetListener> setListenerClass;
+
+ /**
+ * 对应列的配置。
+ */
+ private Map
+ * 对象类型请写对应类的全限定名,例如:java.lang.String/com.example.enums.Gender
*/
private String propertyType;
/**
- * 属性的默认值, 例:long类型默认值:0L,枚举类型默认值:Gender.MALE
+ * 属性的默认值,例如:long 类型默认值:0L,枚举类型默认值:Gender.MALE。
*/
private String propertyDefaultValue;
+
+ /**
+ * 自定义 TypeHandler。
+ */
+ private Class extends TypeHandler> typeHandler;
+
+ /**
+ * 脱敏方式。
+ */
+ private String mask;
+
+ /**
+ * 字段是否为主键。
+ */
+ private boolean isPrimaryKey = false;
+
+ /**
+ * ID 生成策略。
+ */
+ private KeyType keyType;
+
+ /**
+ * ID 生成器值。
+ */
+ private String keyValue;
+
+ /**
+ * sequence 序列执行顺序。
+ */
+ private Boolean keyBefore;
+
+ /**
+ * 是否是租户 ID。
+ */
+ private Boolean tenantId;
+
}
```
@@ -469,7 +548,7 @@ MyBatis-Flex 内置了一个名为:`JdbcTypeMapping` 的 java 类,我们可
数据类型,在开始生成代码之前,可以先调用其进行配置,例如:
```java
-JdbcTypeMapping.registerMapping(LocalDateTime.class,Date.class);
+JdbcTypeMapping.registerMapping(LocalDateTime.class, Date.class);
```
那么,当我们生成代码的时候,发现 JDBC 驱动的数据类型为 `LocalDateTime`,则 Entity 对应的属性类型为 `Date`。
@@ -536,7 +615,7 @@ generator.generate();
MyDialect.java
```java
-class MyDialect implements IDialect{
+class MyDialect implements IDialect {
//重写相关构建方法
}
```