# code_generator
**Repository Path**: linjunliang/code-gegerator
## Basic Information
- **Project Name**: code_generator
- **Description**: 一款基于FreeMarker的代码生成工具,欢迎大家使用
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2025-03-25
- **Last Updated**: 2025-04-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Code Generator代码生成器
> 作者:*Rhythm-2019*
>
> 邮箱:rhythm_2019@163.com
>
> 最近更新:2021/01/01
>
> 版本:v1.1
新的一年里祝大家事业有成工作顺利
## 项目简介
本项目是基于```Freemarker```和```Mybatis```的```tx.Mapper```的代码生成器,可快速生成Web项目中的部分代码,结构如下
```
文件夹 PATH 列表
卷序列号为 F67E-F033
C:.
│ 1.txt
│
└─example
└─src
└─main
├─java
│ └─com
│ └─mdnote
│ └─springbootcli
│ ├─common
│ │ └─ret
│ │ CommonResponse.java
│ │ CommonResult.java
│ │ CustomizeCode.java
│ │
│ ├─core
│ │ └─universal
│ │ BaseMapper.java
│ │ BaseService.java
│ │ BaseServiceImpl.java
│ │
│ └─example
│ ├─controller
│ │ PermInfoController.java
│ │ RoleInfoController.java
│ │ RolePermRelationController.java
│ │ SystemLogController.java
│ │ UserInfoController.java
│ │ UserRoleRelationController.java
│ │
│ ├─db
│ │ ├─mapper
│ │ │ PermInfoMapper.java
│ │ │ RoleInfoMapper.java
│ │ │ RolePermRelationMapper.java
│ │ │ SystemLogMapper.java
│ │ │ UserInfoMapper.java
│ │ │ UserRoleRelationMapper.java
│ │ │
│ │ └─model
│ │ PermInfo.java
│ │ RoleInfo.java
│ │ RolePermRelation.java
│ │ SystemLog.java
│ │ UserInfo.java
│ │ UserRoleRelation.java
│ │
│ └─service
│ │ PermInfoService.java
│ │ RoleInfoService.java
│ │ RolePermRelationService.java
│ │ SystemLogService.java
│ │ UserInfoService.java
│ │ UserRoleRelationService.java
│ │
│ ├─impl
│ │ PermInfoServiceImpl.java
│ │ RoleInfoServiceImpl.java
│ │ RolePermRelationServiceImpl.java
│ │ SystemLogServiceImpl.java
│ │ UserInfoServiceImpl.java
│ │ UserRoleRelationServiceImpl.java
│ │
│ └─vo
│ PermInfoVO.java
│ RoleInfoVO.java
│ RolePermRelationVO.java
│ SystemLogVO.java
│ UserInfoVO.java
│ UserRoleRelationVO.java
│
└─resources
└─com
└─mdnote
└─springbootcli
└─example
└─db
└─mapper
PermInfoMapper.xml
RoleInfoMapper.xml
RolePermRelationMapper.xml
SystemLogMapper.xml
UserInfoMapper.xml
UserRoleRelationMapper.xml
```
## 使用方式
在使用之前需要用户添加下面的依赖:
```xml
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.0
tk.mybatis
mapper-generator
1.0.0
tk.mybatis
mapper-spring-boot-starter
2.0.1
com.github.pagehelper
pagehelper-spring-boot-starter
1.2.10
com.google.guava
guava
22.0
```
用户需要在```generator.properties```中配置以下信息
```properties
# 数据库设置
generator.database.ip=127.0.0.1
generator.database.port=3306
generator.database.dbType=mysql
generator.database.databaseName=springboot-cli
generator.database.username=root
generator.database.password=********
# 信息设置
generator.settings.projectName=helloWord
generator.settings.projectComment=测试用例
generator.settings.author=Rhythm-2019
generator.settings.basePackage=com.mdnote.example
generator.settings.version=1.0
generator.settings.email=rhythm_2019@163.com
generator.settings.outputPath=C://Users//Rhythm//Desktop//test//
# 填写需要去除的表前缀
generator.tabelRemovePrefixes=tb_,pr_
```
运行```Application.java```,将生成好的代码拷贝到工程中即可
## 更新记录
20201212:
* Entity和Model是分离的两个实体,需要在Service中进行转换,该部分仍未完成
* Controller现在仍为空
2021/1/1
* 基本完成所有模板的编写
* 对于主键生成还未解决,使用过程中需要大家将数据库设置为自增或修改模板
* 整个工程优点乱,每次添加新的模板都需要大量修改代码,之后需要优化一下
## 参考
* [Freemaker 文档](http://freemarker.foofun.cn/pgui.html)
* [获取数据库结构信息——JDBC.MetaData](https://rhythm-2019.gitee.io/2020/07/12/%E8%8E%B7%E5%8F%96%E6%95%B0%E6%8D%AE%E5%BA%93%E7%BB%93%E6%9E%84%E4%BF%A1%E6%81%AF-JDBC-MetaData/)
* [SLF4J和logback整合](https://www.jianshu.com/p/696444e1a352)