欢迎使用auto-code代码自动生成引擎.2.1.0 再次升级.现在生成代码不再需要书写yaml文件.直接可以通过页面生成 单表, 一对一, 一对多 ,多对多代码 源码地址 代码生成演示地址
单表
一对一
一对多
多对多
1.目前市面上的代码生成工具绝大多数仅仅支持生成单表,该项目支持 单表, 一对一, 一对多 ,多对多 代码生成.大大简化了开发的工作量 2.只要目前你的项目采用 springMVC+spring+mybatis架构的项目都适用(传统工程和springBoot工程都适用). 不管一次开发还是二次开发.该项目仅仅只是帮你生成单表以及多表的增删改查,不做任何底层的改动.
1.目前市面上的代码生成工具绝大多数仅仅支持生成单表,该项目支持 单表, 一对一, 一对多 ,多对多 代码生成.大大简化了开发的工作量
2.只要目前你的项目采用 springMVC+spring+mybatis架构的项目都适用(传统工程和springBoot工程都适用). 不管一次开发还是二次开发.该项目仅仅只是帮你生成单表以及多表的增删改查,不做任何底层的改动.
增删改查
1.该项目只生成接口(controller,service,serviceImpl,dao,xml), 不生成页面.所以如果项目是采用前后台分离,不需要写页面.该项目会适合你 2.如果还想生成页面请看该项目,这个项目基于本项目.扩展了页面生成.适合后台使用 源码地址 演示地址 账号 ztp 密码 111111
1.该项目只生成接口(controller,service,serviceImpl,dao,xml), 不生成页面.所以如果项目是采用前后台分离,不需要写页面.该项目会适合你
2.如果还想生成页面请看该项目,这个项目基于本项目.扩展了页面生成.适合后台使用 源码地址 演示地址 账号 ztp 密码 111111
ztp
111111
绝大多数时候我们都是在做增删改查.每次创建一张表.然后我们需要重新写一次增删改查, 写虽然简单,不过极度耗时(controller,server,serverImpl,dao,xml) 所以才有了该项目,该项目能帮助你减少70%的工作量,让你专注于业务的实现.
非常简单.只需要短短的几部就能完成集成 1.传统java-web集成请看这里 项目地址 2.spring-boot集成请看这里 项目地址
非常简单.只需要短短的几部就能完成集成
1.传统java-web集成请看这里 项目地址
2.spring-boot集成请看这里 项目地址
1.集成非常简单请查看上面的项目.选择自己需要的方式.里面有实例工程可供参考 2.成功后访问 http://localhost:8070/auto-code-ui/ui/index.html
1.集成非常简单请查看上面的项目.选择自己需要的方式.里面有实例工程可供参考
2.成功后访问 http://localhost:8070/auto-code-ui/ui/index.html
界面如下:
假设我们要生成一张单表
CREATE TABLE `test_simple_code` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(50) DEFAULT NULL COMMENT '名称', `age` int(3) DEFAULT NULL COMMENT '年龄', `status` int(2) DEFAULT NULL COMMENT '{"name":"状态","1":"启用","0":"禁用"}', `birthday` date DEFAULT NULL COMMENT '生日', `remarks` text COMMENT '备注', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='单表代码生成';
1.在数据库建表 界面选择单表生成.选择对应的表,点击生成预览. 最后点击确认生成. 完毕.
1.在数据库建表
生成预览
确认生成
生成的文件如下:
3.生成完毕
一个用户对应一个班级
一个用户
一个班级
CREATE TABLE `test_one_to_one_user` ( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id', `name` VARCHAR(50) DEFAULT NULL COMMENT '名称', `age` INT(3) DEFAULT NULL COMMENT '年龄', `status` INT(2) DEFAULT NULL COMMENT '{"name":"状态","1":"启用","0":"禁用"}', `birthday` DATE DEFAULT NULL COMMENT '生日', `remarks` TEXT COMMENT '备注', `mun` DECIMAL(20,2) DEFAULT NULL COMMENT '数字', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8 COMMENT='一对一用户'; CREATE TABLE `test_one_to_one_class` ( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '班级id', `user_id` INT(11) DEFAULT NULL COMMENT '用户id', `class_name` VARCHAR(50) DEFAULT NULL COMMENT '班级名称', `quantity` INT(11) DEFAULT NULL COMMENT '班级人数', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COMMENT='一对一班级';
打开界面.选择对应的表,一对一比单表多了一个外键id. 比如上面两张表的关系就是通过 user_id来关联的 如下:
test_one_to_one_user.id=test_one_to_one_class.user_id
一对多与一对一一样不再描述
多个用户 对应 多个角色
多个用户
多个角色
CREATE TABLE `test_many_to_many_role` ( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '角色', `name` VARCHAR(100) NOT NULL COMMENT '角色名称', `status` INT(2) DEFAULT '0' COMMENT '{"name":"状态","0":"启用","1":"禁用"}', `create_user_id` INT(11) DEFAULT NULL COMMENT '创建者', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_user_id` INT(11) DEFAULT NULL COMMENT '更新者', `update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `dels` INT(2) DEFAULT '0' COMMENT '{"name":"是否删除","0":"正常","1":"删除"}', PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COMMENT='多对多角色'; CREATE TABLE `test_many_to_many_user` ( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id', `name` VARCHAR(50) DEFAULT NULL COMMENT '名称', `age` INT(3) DEFAULT NULL COMMENT '年龄', `status` INT(2) DEFAULT NULL COMMENT '{"name":"状态","1":"启用","0":"禁用"}', `birthday` DATE DEFAULT NULL COMMENT '生日', `remarks` TEXT COMMENT '备注', `mun` DECIMAL(20,2) DEFAULT NULL COMMENT '数字', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8 COMMENT='多对多用户'; CREATE TABLE `test_many_to_many_user_role` ( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '测试用户角色', `user_id` INT(11) DEFAULT NULL COMMENT '用户id', `role_id` INT(11) DEFAULT NULL COMMENT '角色id', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=140 DEFAULT CHARSET=utf8 COMMENT='多对多用户角色';
1.打开界面.选择对应的表,多对多比一对一多了一个关系描述表 比如上面三张表的关系是通过 test_many_to_many_user_role来表述的.如下:
test_many_to_many_user_role.user_id=test_many_to_many_user.id and test_many_to_many_user_role.role_id=test_many_to_many_role.id
1.创建表结构时如果写上表与字段的注释将大大增加程序的可读性.我会将注释写到bean上面. 2.如果注释为json键值对字符串我将会在实体类生成一个字典方法 如: {"1":"启用","0":"禁用"} 将会在实体类里面生成: public String getStatus_(){ if(MyStringUtils.isEmpty(status)){ return ""; }else if(status.equals("1")){ return "启用"; }else if(status.equals("0")){ return "禁用"; } return ""; }
如果是spring boot请以auto-code.xx 开头.如:
auto-code.cover=false 或者 auto-code: cover: false
如果是java web请使用yaml格式书写 如:
globalConfig: parentPack