# AGCode
**Repository Path**: C-BAND/AutoGeneratorCode
## Basic Information
- **Project Name**: AGCode
- **Description**: AGCode是一个功能强大且极易操作的文件/代码批量生成引擎,帮助你从繁杂的基础代码编写中彻底解放。 支持数据库所有表的批量生成,使用自定义模板,可以生成任何你需要的文件内容(如数据库设计文档等)。
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: http://agcode.mydoc.io
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 29
- **Created**: 2022-02-21
- **Last Updated**: 2022-02-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# AGCode
AGCode是一个功能强大且极易操作的文件/代码批量生成引擎,帮助你从繁杂的基础代码编写中彻底解放。
支持数据库所有表的批量生成,使用自定义模板,可以生成任何你需要的文件内容(如数据库设计文档等)。
框架的开发注重操作的简便性,极易上手,已集成所有依赖包,只需导入一个jar,编写简单的配置即可使用。
[]()
[]()
[](http://www.apache.org/licenses/LICENSE-2.0.html)
* 作者:YouYuan
* 邮箱:xiyousuiyuan#163.com
* QQ:1265161633
## 功能介绍
- 使用自动化技术提升工作效率,极大减少人工编码量。
- 支持自定义模板,生成任何你需要的文件内容(不局限于Java文件,也可以生成Python自动化测试脚本等)。
- 生成项目开发中所有的基础代码,例如JavaBean、数据字典、MyBatis映射、DAO、Service、Controller、Javascript、Html等。
- 自动生成数据库设计文档,并且包含数据表的索引信息。
- 框架内部提供一套基于Spring+SpringMVC+Mybatis的代码模板,生成的代码默认实现了增删改查、乐观锁、逻辑删除等功能。
- 可根据配置自动完成接口设计、表单校验、逻辑删除、乐观锁、区间查询、模糊查询、正则校验等功能。
- 可根据配置将字段的key-value映射进行自动转换,例如`1:男,2:女`,程序可智能解析构建转换列表。
- 全库批量生成,瞬间完成所有基础代码的编写工作。
## 说明文档
[AGCode v2.5文档](http://agcode.mydoc.io/ "AGCode v2.5文档") | [AGCode v2.2文档](http://agcode.mydoc.io/?v=41189 "AGCode v2.2说明文档") | [Wiki文档](https://gitee.com/you-yuan/AutoGeneratorCode/wikis/pages?sort_id=2362818&doc_id=105766 "Wiki文档")
## 快速开始
可下载build文件夹中的jar包,参照示例即可快速上手使用。
> 请动动小手帮忙点击右上角Star \~^_^\~ 谢谢! 
### 效果展示
#### 生成代码

#### 生成数据库设计文档

### 示例代码
``` java
GeneratorConfig generatorConfig = new GeneratorConfig();//文件生成信息配置
generatorConfig.setAuthor("YouYuan");//作者,用于生成注释
generatorConfig.setPackageName("com.yuan");//包名
generatorConfig.setOutputPath("F:/Temp/AutoGeneratorCode/Test2.0/Jar");//设置文件输出路径
DatabaseConfig databaseConfig = new DatabaseConfig();//数据库信息配置
String dbName = "generator";//数据库名
databaseConfig.setDbUrl("jdbc:mysql://localhost:3306/" + dbName + "?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true");//数据库连接地址
databaseConfig.setDbName(dbName);//设置数据库名
databaseConfig.setUsername("youyuan");//连接数据库的用户名,此处最好使用具有root权限的用户
databaseConfig.setPassword("123");//数据库用户密码
databaseConfig.setTablePrefix("t_");//数据库表名前缀,用于生成类时自动去除此前缀
GeneratorCode generatorCode = new GeneratorCode(databaseConfig, generatorConfig);//根据配置创建文件生成核心对象
generatorCode.batchGenerator();//全库批量生成
generatorCode.dbDesignDoc();//生成数据库设计文档
```
## 兼容性
|环境|支持版本|
|------|------|
|JDK|1.6及以上版本|
| 数据库 | MySQL 5.x、Oracle |
## 最近更新 2020-06-23
- 版本号:2.5
- 更新内容:
- 完善generatorCode.dbDesignDoc(),自动生成数据库设计文档(包括表索引字段)
- GeneratorCode新增processTemplate方法,支持更加灵活的处理模板
- 支持在文件系统中访问数据集中的Map数据
- MySqlDatabaseInfoReader支持查询数据表的索引信息
- 数据集添加dbName、indexList等属性
- 完善数据库设计文档模板
- AGCode生成文件时添加进度显示
## 开发计划
1. 根据配置的属性值转换列表自动生成常量列表与数据字典
2. 基于web服务器提供在线配置数据库信息生成代码的功能