# generate **Repository Path**: cnlinjie/generate ## Basic Information - **Project Name**: generate - **Description**: 基于Spring Boot和Freemarker的代码生成器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2019-10-11 - **Last Updated**: 2021-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 说明 用来生成代码的一个小工具,读取数据库的表和视图的字段信息,根据Freemarker模板生成代码文件。 ## 配置 提供`数据库`的连接信息,和`模板位置`,输出的`文件位置`,配到 application.yml ,如下: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/test username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver name: test template: doc/template output: doc ``` - `template` 是模板的目录信息,如这边我配置到了当前项目目录下的 `doc/template` 里面都是模板,可绝对路径或相对路径,如果是相对路径,则相对当前项目下 - `output` 配置的是生成过后的文件存放路径 ,我这边也直接配相对路径,也可配置绝对路径 ## 给予到模板的参数 - `tableName` 数据表名,如:user_log - `entityName` 驼峰式的表名,一般做类名, 如:UserLog - `minLineName` 中划线的表名,如:user-log - `tableComment` 表的注释,数据库里面的,如:用户日志 - `columns` ,表的列(字段)信息,它也是一个Map, - └─ `fieldName` 字段名,首字母小写,如: nickname - └─ `fieldNameCapFirst` 字段名,首字母大小:Nickname - └─`javaType` 数据库类型对应的Java类型,如: Integer - └─`comment` 字段注释,如:昵称 - └─`isKeyword` 字段名是否是关键字,如: order ,本身就是sql的关键字,最好不要这样取字段名 - └─`defaultValue` 字段默认值 ## 文件结构 ``` ├── java │ └── org │ └── linjie │ └── generate │ ├── GenerateApplication.java │ ├── core │ │ ├── Config.java # 配置信息 │ │ ├── DatabaseInfo.java #数据库信息 │ │ ├── DatabaseInfoMysqlImpl.java │ │ ├── GenerateCore.java #核心文件 │ │ ├── Renderer.java #渲染接口 │ │ └── RendererFreemarkerImpl.java │ └── utils │ ├── MapUtils.java │ ├── ReadTextByLineUtils.java │ └── StringUtils.java └── resources ├── application.yml #配置文件 └── keywords.txt #数据库关键字文件 ``` 说明下: 代码本身很简单。 1. 读取数据库的表和视图信息, 2. 将这些需要的信息存到 Map 里面, 3. 然后传给 Feemarker 做渲染,然后根据模版生成文件。 ## SEO - 代码生成器 - 生成代码 - 代码生成 - Java代码生成 - JS代码生成 - C#代码生成