# AutoGeneratorCode **Repository Path**: gx521/AutoGeneratorCode ## Basic Information - **Project Name**: AutoGeneratorCode - **Description**: AutoGeneratorCode是一个代码生成引擎,可智能解析数据库信息,配合模板能够完成生成代码、编写文件等工作。已集成所有依赖包,只需导入一个jar,编写简单的配置即可使用。 支持数据库所有表的批量生成,一键自动完成所有模板代码编写工作! - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 29 - **Created**: 2020-03-17 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AutoGeneratorCode AutoGeneratorCode是一个代码生成引擎,通过读取并智能解析数据库信息构建数据集,配合模板能够完成生成代码、编写文件等工作。 支持数据库所有表的批量生成,一键自动完成所有基础代码的编写工作!支持自定义模板,生成任何你需要的文件内容。 已集成所有依赖包,只需导入一个jar,编写简单的配置即可使用。 [![java](https://img.shields.io/badge/language-java-orange.svg)]() [![jdk](https://img.shields.io/badge/jdk-1.6-green.svg)]() [![License](http://img.shields.io/:license-apache-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.html) * 作者:YouYuan * 邮箱:xiyousuiyuan#163.com * QQ:1265161633 ## 功能介绍 > 当前模板正在开发中,目前支持生成实体类、MyBatis映射、Dao、Service,更多模板近期上传,请关注更新。 > 欢迎各位上传自己的模板^_^ 1. 根据数据库信息生成实体类与MyBatis映射 2. 自动生成DAO/Service/Action/Controller/jsp/html/javascript等代码 3. 自动识别数据库命名规则,生成规范的java名 4. 支持自定义模板,生成任何你需要的文件格式 5. 可根据配置支持逻辑删除、乐观锁、区间查询、模糊查询等功能 6. 全库批量生成,一次完成所有基础代码的编写工作 ## 文档 [文档链接](http://autogeneratorcode.mydoc.io "AutoGeneratorCode说明文档") ## 使用示例 ### 示例程序 > 可下载build文件夹中的jar包立即开始使用。 > 如果觉得这个项目对你有用请动动小手点击右上角Star \~^_^\~ ![Star](img/star.jpg) ![示例程序](img/example-1.jpg) ### 生成效果 ![生成效果](img/example-2.jpg) ![生成文件列表](img/tree.jpg) ### 示例代码 ``` java GeneratorConfig generatorConfig = new GeneratorConfig(); generatorConfig.setAuthor("YouYuan"); generatorConfig.setPackageName("com.yuan"); generatorConfig.setOutputPath("F:/Temp/AutoGeneratorCode/Test2.0/Jar");//设置文件输出路径 DatabaseConfig databaseConfig = new DatabaseConfig(); databaseConfig.setDbUrl("jdbc:mysql://localhost:3306/generator?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true");//数据库连接地址 databaseConfig.setDbName("generator");//数据库名 databaseConfig.setUsername("youyuan");//连接数据库的用户名,此处最好使用具有root权限的用户 databaseConfig.setPassword("123");//数据库用户密码 databaseConfig.setTablePrefix("t_");//数据库表名前缀,用于生成类时自动去除此前缀 GeneratorCode generatorCode = new GeneratorCode(); generatorCode.setDatabaseConfig(databaseConfig).setGeneratorConfig(generatorConfig);//应用设置 generatorCode.batchGenerator();//全库批量生成 ``` ## 兼容性 JDK 1.6+ MySQL 5.x ## 支持数据库 暂只支持MySQL数据库。 ## 数据表注释配置语法 ``` sql CREATE TABLE `t_member` ( `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID{{hidden,blank}}', `NAME` varchar(100) NOT NULL COMMENT '姓名{{like}}', `AGE` int(11) NOT NULL COMMENT '年龄{{regex:"\\d{1,2}",interval}}', `MONEY` decimal(12,2) DEFAULT '0.00' COMMENT '余额{{interval}}', `CONTENT` text COMMENT '个人详情{{like}}', `STATE` int(11) DEFAULT '1' COMMENT '状态{{cover:"1:启用,2:禁用"}}', `VERSION` int(11) DEFAULT '0' COMMENT '版本号{{b,h}}', `IS_DEL` int(11) DEFAULT '0' COMMENT '是否删除{{b,c:"0:否,1:是"}}', `SORT` int(11) DEFAULT '0' COMMENT '排序{{b}}', `CREATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间{{b}}', `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间{{b}}', PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会员{{useLock,lockFiled:"VERSION",logicDel,delFiled:"IS_DEL"}}'; ``` ### 配置说明: 配置写在注释(comment)结尾的双大括号"{{}}"中,格式为`{{配置名:"配置值"}}`,无配置值的只要写配置名即可。 ### table配置 1. useLock:对此表的update使用乐观锁 2. lockFiled:用于实现乐观锁的版本字段,配置值是字段名 3. logicDel:对此表数据启用逻辑删除 4. delFiled:用于实现逻辑删除的标记字段,配置值是字段名 > 命令支持简写(l=useLock,lf=lockFiled,d=logicDel,df=delFiled) ### column配置 1. hidden:字段添加到页面表单隐藏域 2. blank:页面隐藏此字段信息 3. regex:数据校验正则表达式 4. interval:字段支持区间查询 5. cover:数据值转换配置 6. like:使用模糊查询 > 命令支持简写(h=hidden,b=blank,i=interval,r=regex,l=like,c=cover) ## 最近更新 ### 版本:2.0(核心重构) 更新日期:2017-12-17 更新说明: - table的注释新增了useLock、lockFiled、logicDel、delFiled四个配置参数,用于实现乐观锁以及逻辑删除 - column的注释新增了hidden、blank、regex、interval、cover、like六个参数,用于控制数据的查询以及显示等 - 数据注释配置语法修改,写在注释(comment)结尾的双大括号"{{}}"中,格式为{{配置名:"配置值"}},无配置值的只要写配置名即可。*(此修改不兼容1.5及以下版本)* - 支持指定多个表生成 - 支持设定不需要生成的表 - 新增获取构建信息集合的接口,方便进行个性化定制需求 - 移除了根据配置文件生成代码的功能 - 移除了将数据表信息导出到Excel的功能(可使用构建信息集合自行灵活实现) - 文件生成完毕后自动打开输出路径的文件管理器 - 模板外访问构建数据集支持链式调用,可获取的数据更多 - 支持模板引擎语法解析占位符配置 - 优化程序结构 - 极大优化程序性能,经测试相比1.5版本性能提升8倍。 - 修复已知bug ## 未来功能开发计划 > 欢迎各位参与协同开发^_^ * 新增模板(Html、Js、Controller、Action、Service、Dao、xml等) - 根据数据表配置规则,模板自动实现是否显示、区间查询等功能 - 支持(客户端与服务端)数据根据用户设置的正则表达式自动校验 * 支持更多的数据库(Oracle、SqlServer...) * 更加丰富的模板支持 * 优化代码,提升性能 * ……