# AutoGeneratorCode **Repository Path**: yuesu0122/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**: 2017-12-21 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AGCode AGCode是一个极易操作的文件生成引擎,通过读取并智能解析数据库信息来构建数据集,配合模板能够完成生成代码、编写文件等工作。 支持数据库所有表的批量生成,一键自动完成所有基础代码的编写工作!使用自定义模板,可以生成任何你需要的文件内容。 框架的开发注重操作的简便性,极易上手,已集成所有依赖包,只需导入一个jar,编写简单的配置即可使用。 > 为了方便记忆,项目名称已由`AutoGeneratorCode`更名为`AGCode`,项目地址不变。 [![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 ## 功能介绍 - 生成项目开发中所有的基础代码,例如JavaBean、MyBatis映射、Dao、Service、Controller、Jsp、Html、Javascript等。 - 框架内部模板生成的代码默认实现了增删改查功能,并根据Table配置决定是否实现乐观锁与逻辑删除 - 支持自定义模板,生成任何你需要的文件内容。 - 可根据配置自动完成逻辑删除、乐观锁、区间查询、模糊查询、正则校验等功能。 - 可根据配置将字段的key-值映射进行自动转换,例如1:男,2:女,程序可智能解析构建转换列表 - 全库批量生成,一次完成所有基础代码的编写工作。 > 目前支持生成实体类、MyBatis映射、Dao、Service、Controller,默认实现了增删改查功能,并根据Table配置决定是否实现乐观锁与逻辑删除。 > 更多模板会不断上传,请关注更新。欢迎各位分享自己的模板^_^ ## 文档 [点我查看文档](http://agcode.mydoc.io "AGCode说明文档") ## 使用示例 > 可下载build文件夹中的jar包立即开始使用。 > 如果觉得这个项目对你有用请动动小手点击右上角Star \~^_^\~ ![Star](img/star.jpg) ### 效果展示 ![使用效果](img/usingEffect.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(databaseConfig, generatorConfig);//根据配置创建文件生成核心对象 generatorCode.batchGenerator();//全库批量生成 ``` ## 兼容性 JDK 1.6+ MySQL 5.x ## 支持数据库 暂只支持MySQL数据库。 ## 最近更新 2017-01-09 - 新增SqlServer数据库信息读取接口,待实现,完成后即可支持SqlServer的文件生成 - 代码优化 - 为了方便记忆,项目名称已由`AutoGeneratorCode`更名为`AGCode`,项目地址不变。 - GeneratorCode核心类新增两个构造函数,可直接设定config配置类 - 修复读取classpath下的模板文件路径出错的bug - 修复文件生成内容有错的问题 ### 版本:2.0(核心重构) 更新日期:2017-12-31 更新说明: - 自动生成实体类、MyBatis映射、Dao、Service、Controller,默认实现了增删改查功能,并根据Table配置决定是否实现乐观锁与逻辑删除 - table的注释新增了useLock、lockFiled、logicDel、delFiled四个配置参数,用于实现乐观锁以及逻辑删除 - column的注释新增了hidden、blank、regex、interval、cover、like六个参数,用于控制数据的查询以及显示等 - 数据注释配置语法修改,写在注释(comment)结尾的双大括号"{{}}"中,格式为{{配置名:"配置值"}},无配置值的只要写配置名即可。*(此修改不兼容1.5及以下版本)* - 支持指定多个表生成 - 支持设定不需要生成的表 - 新增获取构建信息集合的接口,方便进行个性化定制需求 - 移除了根据配置文件生成代码的功能 - 移除了将数据表信息导出到Excel的功能(可使用构建信息集合自行灵活实现) - 文件生成完毕后自动打开输出路径的文件管理器 - 模板外访问构建数据集支持链式调用,可获取的数据更多 - 支持模板引擎语法解析占位符配置 - 优化程序结构 - 极大优化程序性能,经测试相比1.5版本性能提升8倍。 ## 未来功能开发计划 > 欢迎各位参与协同开发^_^ * 新增模板(Html、Js、xml等) - 根据数据表配置规则,模板自动实现是否显示、key-值转换等功能 - 支持(客户端与服务端)数据根据用户设置的正则表达式自动校验 * 支持更多的数据库(Oracle、SqlServer...) * 更加丰富的模板支持 * ……