<p align="center">
<h1>HouTu</h1>
</p>
<p align="center">
<strong>HouTu,一款基于MySQL的简单易用又功能强大的代码生成工具。取名后土,后土又名後土,源于母系社会自然崇拜中的土地与女性崇拜。其掌阴阳,育万物,因此被称为大地之母。本项目取名HouTu,取义“育万物”之意,通过定制Freemarker模板,可以生成任意结构化的代码,如 DO、Mapper、XML、Service、Controller、SQL、Html等等,只要你能写出模板,HouTu就能交付给你成品代码。</strong>
</p>
<p align="center">
<a target="_blank" href="https://gitee.com/yadong.zhang/HouTu/blob/master/LICENSE">
<img src="https://img.shields.io/badge/MulanPSL-1.0-blue.svg" ></img>
</a>
<a target="_blank" href="https://www.oracle.com/technetwork/java/javase/downloads/index.html">
<img src="https://img.shields.io/badge/JDK-1.8+-green.svg" ></img>
</a>
<a target="_blank" href="https://apidoc.gitee.com/yadong.zhang/HouTu/" title="API文档">
<img src="https://img.shields.io/badge/Api%20Docs--1.0.0-latest-orange" ></img>
</a>
<a href='https://gitee.com/yadong.zhang/HouTu/stargazers'>
<img src='https://gitee.com/yadong.zhang/HouTu/badge/star.svg?theme=white' alt='star'></img>
</a>
<a target="_blank" href='https://github.com/zhangyd-c/HouTu'>
<img src="https://img.shields.io/github/stars/zhangyd-c/HouTu.svg?style=social" alt="github star"></img>
</a>
</p>
## 特点
1. 原理简单:`HouTu`以原生`MySQL`语句为基础,获取如数据库列表、表详情和列详情等信息,结合`Freemarker`模板生成`Java`代码。
2. 可定制模板:`HouTu`集成`Freemarker`模板,只要是遵循`Freemarker`开发的模板都可以自动生成对应的`Java`代码。
3. 功能强大:支持单表生成、多表生成,理论上支持生成任意结构化的代码。
## 快速开始
### 声明入口类
```java
Generator g = new Generator(Config.getInstance()
.setDriver("com.mysql.cj.jdbc.Driver")
.setUrl("jdbc:mysql://127.0.0.1:3306/houtu?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true&useLegacyDatetimeCode=false")
.setUsername("root")
.setPassword("root")
.setPrimaryKeyType("Integer")
.setClassPrefix("HouTu")
.setClearClassPrefix("HouTu")
.setOutRootDir(System.getProperty("user.dir") + File.separator + "generator-output"));
```
`Generator.java`只提供了一个构造函数,传入系统配置类`Config.java`
### 使用API
`Generator.java`对外提供了四个接口:
- `Generator#deleteOutRootDir()`: 删除输出目录的文件,一般在`generate`之前调用,清空旧的输出文件
- `Generator#printAllTableInfo()`: 打印所有表信息
- `Generator#generateAll()`: 将所有表生成java文件
- `Generator#generate(String[])`: 指定表名生成java文件,入参为可变参数,如果为空则调用`Generator#generateAll()`方法
### 具体使用
```java
//删除生成器的输出目录
g.deleteOutRootDir();
// 打印所有表
g.printAllTableInfo();
// 生成单个表的Java文件
g.generate("sys_user");
```
### 输出内容
```text
00:53:57.945 [main] INFO me.zhyd.houtu.Generator - [delete dir] D:\project\java\HouTu\generator-output
00:53:57.955 [main] INFO me.zhyd.houtu.Generator - ----All Table Names Begin----
00:53:57.990 [main] INFO me.zhyd.houtu.Generator - InnoDB - "sys_resources" - utf8_general_ci
00:53:57.992 [main] INFO me.zhyd.houtu.Generator - InnoDB - "sys_role" - utf8_general_ci
00:53:57.992 [main] INFO me.zhyd.houtu.Generator - InnoDB - "sys_role_resources" - utf8_general_ci
00:53:57.992 [main] INFO me.zhyd.houtu.Generator - InnoDB - "sys_user" - utf8_general_ci
00:53:57.992 [main] INFO me.zhyd.houtu.Generator - InnoDB - "sys_user_role" - utf8_general_ci
00:53:57.992 [main] INFO me.zhyd.houtu.Generator - ----All Table Names END----
00:53:57.992 [main] INFO me.zhyd.houtu.Generator - ---------------------------------------------------------------
00:53:57.992 [main] INFO me.zhyd.houtu.Generator - - BEGIN generate by sys_user
00:53:57.992 [main] INFO me.zhyd.houtu.Generator - ---------------------------------------------------------------
00:53:58.077 [main] INFO me.zhyd.houtu.Generator - ---------------------------------------------------------------
00:53:58.078 [main] INFO me.zhyd.houtu.Generator - - BEGIN generate by sys_user
00:53:58.078 [main] INFO me.zhyd.houtu.Generator - ---------------------------------------------------------------
00:53:58.471 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\biz\dto\HouTuSysUserDto.java
00:53:58.476 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\biz\form\HouTuSysUserForm.java
00:53:58.478 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\biz\service\HouTuSysUserService.java
00:53:58.479 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\biz\service\impl\HouTuSysUserServiceImpl.java
00:53:58.481 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\biz\vo\HouTuSysUserVO.java
00:53:58.482 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\controller\render\RenderHouTuSysUserController.java
00:53:58.485 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\controller\RestHouTuSysUserController.java
00:53:58.487 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\persistence\beans\HouTuSysUser.java
00:53:58.490 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\persistence\mapper\HouTuSysUserMapper.java
00:53:58.491 [main] INFO me.zhyd.houtu.Generator - D:\project\java\HouTu\generator-output\persistence\xml\HouTuSysUserMapper.xml
00:53:58.493 [main] INFO me.zhyd.houtu.core.GeneratorHelper - 程序执行完毕,释放资源...
```

## 内置模板
轻量级的代码生成工具。根据模板进行生成,理论上支持任意模板代码的生成。
```text
|-- biz
| |-- dto
| | `-- ${table.className}Dto.java
| |-- service
| | |-- ${table.className}Service.java
| | `-- impl
| | `-- ${table.className}ServiceImpl.java
| `-- vo
| `-- ${table.className}ConditionVO.java
|-- controller
| |-- Rest${table.className}Controller.java
| `-- render
| `-- Render${table.className}Controller.java
|-- persistence
| |-- beans
| | `-- ${table.className}.java
| |-- mapper
| | `-- ${table.className}Mapper.java
| `-- xml
| `-- ${table.className}Mapper.xml
|-- sql
|-- view
| `-- ${table.className}
|-- annotation.include
|-- java_copyright.include
`-- macro.include
```
## 定制模板
### 模板配置项
| 配置项 | 类型 | 示例 | 解释 | 备注 |
|:---------------------------|:---------|:---------|:---------||:---------|
| `classPrefix` | `String` | Light | 生成的类前缀,先去除 clearClassPrefix 再添加 classPrefix | |
| `clearClassPrefix` | `String` | Light | 需要去除的类前缀,先去除 clearClassPrefix 再添加 classPrefix | |
| `driver` | `String` | com.mysql.cj.jdbc.Driver | | |
| `url` | `String` | jdbc:mysql://127.0.0.1:3306/light | | |
| `db` | `String` | light | 选择的数据库,非必填,如果为空会从url中解析 | |
| `username` | `String` | root | 数据库用户名 | |
| `password` | `String` | root | 数据库密码 | |
| `basePackage` | `String` | me.zhyd.xx.core | 根包名 | |
| `beansPackage` | `String` | me.zhyd.light.core.db.persistence.beans | beans包名 | |
| `mapperPackage` | `String` | me.zhyd.xx.core.db.persistence.mapper | mapper接口包名 | |
| `outRootDir` | `String` | D:\project\generato
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论




























收起资源包目录




















































































共 48 条
- 1
资源评论


gaoxu666666
- 粉丝: 653
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 国外主要运营商网络电话的发展策略分析.docx
- 基于EDA编程出租车计价器研究报告.doc
- Matlab程序设计课程总结.doc
- (源码)基于Angular5的在线商店.zip
- 落脚河水电站全过程项目管理的实践.docx
- C++学生成绩管理系统课程设计分析方案.doc
- ASPNET宿舍管理完整.doc
- 平安城市及智慧城市方案交流.ppt
- 企业会计信息化质量探析.docx
- 基于STC单片机的电子时钟大学本科方案设计书.doc
- 基于web的煤化工仿真培训平台的构建与应用.docx
- 物联网为现代农业发展点亮智慧之光.docx
- 两种液体混合PLC控制系统设计--组态设计.doc
- plc五工位送料小车自动控制示.doc
- 按章节整理-电子商务概论.doc
- (源码)基于C++语言的简易文本编辑器.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
