mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 09:08:24 +08:00
doc: 配置方式文档说明。
This commit is contained in:
parent
0be1088b07
commit
4ca0214084
@ -6,6 +6,7 @@
|
|||||||
在使用前先添加 `mybatis-flex-codegen` 的 Maven 依赖:
|
在使用前先添加 `mybatis-flex-codegen` 的 Maven 依赖:
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.mybatis-flex</groupId>
|
<groupId>com.mybatis-flex</groupId>
|
||||||
<artifactId>mybatis-flex-codegen</artifactId>
|
<artifactId>mybatis-flex-codegen</artifactId>
|
||||||
@ -16,6 +17,7 @@
|
|||||||
同时需要添加数据源的 Maven 依赖和 jdbc 驱动依赖:
|
同时需要添加数据源的 Maven 依赖和 jdbc 驱动依赖:
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.zaxxer</groupId>
|
<groupId>com.zaxxer</groupId>
|
||||||
<artifactId>HikariCP</artifactId>
|
<artifactId>HikariCP</artifactId>
|
||||||
@ -23,9 +25,9 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>mysql</groupId>
|
<groupId>mysql</groupId>
|
||||||
<artifactId>mysql-connector-java</artifactId>
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
<version>8.0.32</version>
|
<version>8.0.32</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -35,13 +37,52 @@
|
|||||||
public class Codegen {
|
public class Codegen {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
//配置数据源
|
//配置数据源
|
||||||
HikariDataSource dataSource = new HikariDataSource();
|
HikariDataSource dataSource = new HikariDataSource();
|
||||||
dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/your-database?characterEncoding=utf-8");
|
dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/your-database?characterEncoding=utf-8");
|
||||||
dataSource.setUsername("root");
|
dataSource.setUsername("root");
|
||||||
dataSource.setPassword("******");
|
dataSource.setPassword("******");
|
||||||
|
|
||||||
|
//创建配置内容,两种风格都可以。
|
||||||
|
GlobalConfig globalConfig = createGlobalConfigUseStyle1();
|
||||||
|
//GlobalConfig globalConfig = createGlobalConfigUseStyle2();
|
||||||
|
|
||||||
|
//通过 datasource 和 globalConfig 创建代码生成器
|
||||||
|
Generator generator = new Generator(dataSource, globalConfig);
|
||||||
|
|
||||||
|
//生成代码
|
||||||
|
generator.generate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static GlobalConfig createGlobalConfigUseStyle1() {
|
||||||
|
//创建配置内容
|
||||||
|
GlobalConfig globalConfig = new GlobalConfig();
|
||||||
|
|
||||||
|
//设置根包
|
||||||
|
globalConfig.setBasePackage("com.test");
|
||||||
|
|
||||||
|
//设置表前缀和只生成哪些表
|
||||||
|
globalConfig.setTablePrefix("tb_");
|
||||||
|
globalConfig.setGenerateTable("account", "account_session");
|
||||||
|
|
||||||
|
//设置生成 entity 并启用 Lombok
|
||||||
|
globalConfig.setEntityGenerateEnable(true);
|
||||||
|
globalConfig.setWithLombok(true);
|
||||||
|
|
||||||
|
//设置生成 mapper
|
||||||
|
globalConfig.setMapperGenerateEnable(true);
|
||||||
|
|
||||||
|
//可以单独配置某个列
|
||||||
|
ColumnConfig columnConfig = new ColumnConfig();
|
||||||
|
columnConfig.setColumnName("tenant_id");
|
||||||
|
columnConfig.setLarge(true);
|
||||||
|
columnConfig.setVersion(true);
|
||||||
|
globalConfig.setColumnConfig("account", columnConfig);
|
||||||
|
|
||||||
|
return globalConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static GlobalConfig createGlobalConfigUseStyle2() {
|
||||||
//创建配置内容
|
//创建配置内容
|
||||||
GlobalConfig globalConfig = new GlobalConfig();
|
GlobalConfig globalConfig = new GlobalConfig();
|
||||||
|
|
||||||
@ -52,7 +93,7 @@ public class Codegen {
|
|||||||
//设置表前缀和只生成哪些表
|
//设置表前缀和只生成哪些表
|
||||||
globalConfig.getStrategyConfig()
|
globalConfig.getStrategyConfig()
|
||||||
.setTablePrefix("tb_")
|
.setTablePrefix("tb_")
|
||||||
.addGenerateTable("account", "account_session");
|
.setGenerateTable("account", "account_session");
|
||||||
|
|
||||||
//设置生成 entity 并启用 Lombok
|
//设置生成 entity 并启用 Lombok
|
||||||
globalConfig.enableEntity()
|
globalConfig.enableEntity()
|
||||||
@ -67,13 +108,9 @@ public class Codegen {
|
|||||||
columnConfig.setLarge(true);
|
columnConfig.setLarge(true);
|
||||||
columnConfig.setVersion(true);
|
columnConfig.setVersion(true);
|
||||||
globalConfig.getStrategyConfig()
|
globalConfig.getStrategyConfig()
|
||||||
.addColumnConfig("account", columnConfig);
|
.setColumnConfig("account", columnConfig);
|
||||||
|
|
||||||
//通过 datasource 和 globalConfig 创建代码生成器
|
return globalConfig;
|
||||||
Generator generator = new Generator(dataSource, globalConfig);
|
|
||||||
|
|
||||||
//生成代码
|
|
||||||
generator.generate();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@ -85,7 +122,7 @@ public class Codegen {
|
|||||||
|
|
||||||
## 使用介绍
|
## 使用介绍
|
||||||
|
|
||||||
在 Mybatis-Flex 的代码生成器中,支持如下 7 种类型的的产物生成:
|
在 Mybatis-Flex 的代码生成器中,支持如下 8 种类型的的产物生成:
|
||||||
|
|
||||||
- Entity 实体类
|
- Entity 实体类
|
||||||
- Mapper 映射类
|
- Mapper 映射类
|
||||||
@ -94,6 +131,7 @@ public class Codegen {
|
|||||||
- ServiceImpl 服务实现类
|
- ServiceImpl 服务实现类
|
||||||
- Controller 控制类
|
- Controller 控制类
|
||||||
- MapperXml 文件
|
- MapperXml 文件
|
||||||
|
- package-info.java 文件
|
||||||
|
|
||||||
启用或关闭某种类型产物的生成,代码如下:
|
启用或关闭某种类型产物的生成,代码如下:
|
||||||
|
|
||||||
@ -115,6 +153,8 @@ globalConfig.enableEntity()
|
|||||||
|
|
||||||
## 全局配置 `GlobalConfig`
|
## 全局配置 `GlobalConfig`
|
||||||
|
|
||||||
|
> 可以像先前一样直接使用 `setXxx()` 进行配置,也可以使用 `getXxxConfig().setXxx()` 进行分类配置。
|
||||||
|
|
||||||
| 获取配置 | 描述 |
|
| 获取配置 | 描述 |
|
||||||
|------------------------|------------------|
|
|------------------------|------------------|
|
||||||
| getJavadocConfig() | 注释配置 |
|
| getJavadocConfig() | 注释配置 |
|
||||||
@ -157,11 +197,16 @@ globalConfig.enableEntity()
|
|||||||
## 注释配置 `JavadocConfig`
|
## 注释配置 `JavadocConfig`
|
||||||
|
|
||||||
| 配置 | 描述 | 默认值 |
|
| 配置 | 描述 | 默认值 |
|
||||||
|-----------------------------------|-------|---------------------------------|
|
|---------------------------------|-----------------|---------------------------------|
|
||||||
| setAuthor(String) | 作者 | System.getProperty("user.name") |
|
| setAuthor(String) | 作者 | System.getProperty("user.name") |
|
||||||
| setSince(String) | 自 | 日期(yyyy-MM-dd) |
|
| setSince(String) | 自 | 日期(yyyy-MM-dd) |
|
||||||
| setTableCommentFormat(Function) | 表名格式化 | 原表名 |
|
| setTableCommentFormat(Function) | 表名格式化 | 原表名 |
|
||||||
| setPackageCommentFormat(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
|
```java
|
||||||
globalConfig.getJavadocConfig()
|
globalConfig.getJavadocConfig()
|
||||||
@ -205,7 +250,7 @@ globalConfig.getPackageConfig()
|
|||||||
```java
|
```java
|
||||||
globalConfig.getStrategyConfig()
|
globalConfig.getStrategyConfig()
|
||||||
.setTablePrefix("sys_")
|
.setTablePrefix("sys_")
|
||||||
.setGenerateTables("sys_user", "sys_dept");
|
.setGenerateTables("sys_user","sys_dept");
|
||||||
```
|
```
|
||||||
|
|
||||||
## 模板配置 `TemplateConfig`
|
## 模板配置 `TemplateConfig`
|
||||||
@ -314,7 +359,7 @@ globalConfig.getControllerConfig()
|
|||||||
## TableDef 生成配置 `TableDefConfig`
|
## TableDef 生成配置 `TableDefConfig`
|
||||||
|
|
||||||
| 配置 | 描述 | 默认值 |
|
| 配置 | 描述 | 默认值 |
|
||||||
|------------------------|---------------|-------|
|
|-----------------------------|---------------|-------|
|
||||||
| setClassPrefix(String) | TableDef 类的前缀 | "" |
|
| setClassPrefix(String) | TableDef 类的前缀 | "" |
|
||||||
| setClassSuffix(String) | TableDef 类的后缀 | "Def" |
|
| setClassSuffix(String) | TableDef 类的后缀 | "Def" |
|
||||||
| setOverwriteEnable(boolean) | 是否覆盖之前生成的文件 | false |
|
| setOverwriteEnable(boolean) | 是否覆盖之前生成的文件 | false |
|
||||||
@ -404,13 +449,15 @@ Mybatis-Flex 内置了一个名为:`JdbcTypeMapping` 的 java 类,我们可
|
|||||||
数据类型,在开始生成代码之前,可以先调用其进行配置,例如:
|
数据类型,在开始生成代码之前,可以先调用其进行配置,例如:
|
||||||
|
|
||||||
```java
|
```java
|
||||||
JdbcTypeMapping.registerMapping(LocalDateTime.class, Date.class);
|
JdbcTypeMapping.registerMapping(LocalDateTime.class,Date.class);
|
||||||
```
|
```
|
||||||
|
|
||||||
那么,当我们生成代码的时候,发现 JDBC 驱动的数据类型为 `LocalDateTime`,则 Entity 对应的属性类型为 `Date`。
|
那么,当我们生成代码的时候,发现 JDBC 驱动的数据类型为 `LocalDateTime`,则 Entity 对应的属性类型为 `Date`。
|
||||||
|
|
||||||
## 自定义代码模板
|
## 自定义代码模板
|
||||||
|
|
||||||
通过 `GlobalConfig`(全局配置)的 `setTemplateEngine()` 方法,可以配置自己的模板引擎以及模板,以下是内置的 `EnjoyTemplate` 的代码示例:
|
通过 `GlobalConfig`(全局配置)的 `setTemplateEngine()` 方法,可以配置自己的模板引擎以及模板,以下是内置的 `EnjoyTemplate`
|
||||||
|
的代码示例:
|
||||||
|
|
||||||
```java
|
```java
|
||||||
public class EnjoyTemplate implements ITemplate {
|
public class EnjoyTemplate implements ITemplate {
|
||||||
@ -507,6 +554,7 @@ public class HtmlGenerator implements IGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
最后,通过 `GeneratorFactory` 来注册 `HtmlGenerator` 即可:
|
最后,通过 `GeneratorFactory` 来注册 `HtmlGenerator` 即可:
|
||||||
|
|
||||||
```java
|
```java
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user