# generator-maven-plugin **Repository Path**: acomma/generator-maven-plugin ## Basic Information - **Project Name**: generator-maven-plugin - **Description**: 一个适用于 MySQL 数据库的基于 Velocity 模板引擎的代码生成插件. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-07-18 - **Last Updated**: 2022-08-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 一个适用于 [MySQL](https://www.mysql.com/) 数据库的基于 [Velocity](http://velocity.apache.org/) 模板引擎的代码生成插件. ### 使用方法 1. 下载代码 ``` git clone https://gitee.com/acomma/generator-maven-plugin.git ``` 2. 本地安装 ``` mvn install ``` 3. 配置插件 ```xml me.acomma generator-maven-plugin 1.0.0-SNAPSHOT ``` 4. 添加配置文件 `generator/generator.properties` ```properties jdbc.driver-class-name=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/groot?characterEncoding=UTF-8&serverTimezone=GMT%2B8 jdbc.username=root jdbc.password=123456 table.name=t_user table.prefix=t_ package.name=me.acomma.groot.generator ``` 5. 在目录 `generator/templates` 下编写 Velocity 模板 6. 执行插件命令 ### 对象说明 #### $tableInfo 属性 | 说明 --- | --- original | 原始的表对象 `Table` name | 已转换为 CamelCase 格式的表名, 比如 `User` wholeColumns | 所有的列信息 `List` primaryColumns | 所有的主键列信息 `List` otherColumns | 除了主键列以外的其他列信息 `List` prefix | 表的前缀 packageName | 包名 packagePath | 包路径, 由包名转换而来, 比如包名 `me.acomma.generator` 转成包路径 `me/acomma/generator` autoImportJavaTypes | 自动导入的 Java 类型, `ColumnInfo` 中除 `java.lang` 开头的所有 Java 类型 #### ColumnInfo 属性 | 说明 --- | --- original | 原始的列对象 `Column` name | 已转换为 camelCase 格式的列名, 比如 `userId` jdbcType | 列的 JDBC 类型, 比如 `VARCHAR` javaType | 列的 Java 类型, 比如 `java.lang.String` shortJavaType | 去掉包名后的 Java 类型, 比如 `String` #### Table 属性 | 说明 --- | --- tableName | 表的名字 tableComment | 表的注释 columns | 表的列 `List` #### Column 属性 | 说明 --- | --- columnName | 列的名字 ordinalPosition | 列的顺序 dataType | 列的数据类型 columnType | 列的类型 columnKey | 列的主键标识 columnComment | 列的注释 #### $fileInfo 属性 | 说明 --- | --- savePath | 保存路径, 默认值 `${project.basedir}/src/main/java/${package.name}` filename | 文件名, 默认值为 `$tableInfo.name` 拼接模板文件的名称后移除后三个字符, 比如 `$tableInfo.name` 值为 `User`, 模板文件名 `Service.java.vm`, 则默认文件名 `UserService.java` content | 文件内容 #### $utils 方法 | 说明 --- | --- snakeCase2CamelCase(String snakeCase) | 比如 `user_id` 转为 `userId` snakeCase2PascalCase(String snakeCase) | 比如 `user_id` 转为 `UserId` pascalCase2CamelCase(String pascalCase) | 比如 `UserId` 转为 `userId` camelCase2PascalCase(String camelCase) | 比如 `userId` 转为 `UserId` removePrefix(String str, String prefix) | 比如 `t_user` 移除前缀 `t_` 后变为 `user` concat(String... strings) | 比如 `user` 和 `Id` 两个字符串拼接称 `userId`