欢迎使用auto-code代码自动生成引擎.2.1.0 再次升级.现在生成代码不再需要书写yaml文件.直接可以通过页面生成 单表
, 一对一
, 一对多
,多对多
代码 源码地址 代码生成演示地址
1.目前市面上的代码生成工具绝大多数仅仅支持生成单表,该项目支持
单表
,一对一
,一对多
,多对多
代码生成.大大简化了开发的工作量
2.只要目前你的项目采用 springMVC+spring+mybatis架构的项目都适用(传统工程和springBoot工程都适用). 不管一次开发还是二次开发.该项目仅仅只是帮你生成单表以及多表的
增删改查
,不做任何底层的改动.
1.该项目只生成接口(controller,service,serviceImpl,dao,xml), 不生成页面.所以如果项目是采用前后台分离,不需要写页面.该项目会适合你
2.如果还想生成页面请看该项目,这个项目基于本项目.扩展了页面生成.适合后台使用 源码地址 演示地址 账号
ztp
密码111111
绝大多数时候我们都是在做
增删改查
.每次创建一张表.然后我们需要重新写一次增删改查, 写虽然简单,不过极度耗时(controller,server,serverImpl,dao,xml) 所以才有了该项目,该项目能帮助你减少70%的工作量,让你专注于业务的实现.
非常简单.只需要短短的几部就能完成集成
1.传统java-web集成请看这里 项目地址
2.spring-boot集成请看这里 项目地址
1.集成非常简单请查看上面的项目.选择自己需要的方式.里面有实例工程可供参考
界面如下:
假设我们要生成一张单表
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.在数据库建表
- 界面选择单表生成.选择对应的表,点击
生成预览
. 最后点击确认生成
. 完毕.
生成的文件如下:
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
参数名 | 默认值 | 介绍 |
---|---|---|
parentPack | 无 | 生成代码的父包 如父包是com.zengtengpeng.test controller将在com.zengtengpeng.test.controller下 bean 将在com.zengtengpeng.test.bean下 ,service,dao同理 |
parentPath | 无 | 生成代码的项目根路径 |
cover | false | 是否覆盖生成 默认不覆盖 |
swagger | true | 是否生成swagger注解 (spring boot下如果为false将无法查看swagger页面) |
javaSource | src/main/java | java在项目中的源路径 |
resources | src/main/resources | resource位置 |
xmlPath | mybatisMapper | mybatis xml存放的路径 |
packageBean | bean | 生成bean尾缀 |
packageDao | dao | 生成dao尾缀 |
packageController | controller | 生成controller尾缀 |
packageService | service | 生成service尾缀 |
packageBean | bean | 生成bean尾缀 |
autoCode | true | 是否启用代码生成器(生成环境建议关闭) |
watchMobel | false | 观察者模式.只能看.不能生成代码(演示环境用的) |
systemctl status kubelet ● kubelet.service - kubelet: The Kubernetes Node Agent Loaded: loaded (/etc/systemd/system/kubelet.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system
git(Auto-merging错误)解决冲突 1.git pull 更新代码,发现 error: Your local changes to the following files would be overwritten by merge:pom.xml Please commit your changes or stash them before you merge. 这说明你的pom.x
遇到了两次OPATCHAUTO-68061 报错 按照正常的打补丁流程: 1. 分别在node1、node2上,升级GI OPatch 2. 分别在node1、node2上,升级Oracle OPatch 3. 分别在node1、node2上,给GI 打补丁 4. 分别在node1、node2上,给Oracle打补丁 结果就在成功在node1上给Oracle打补丁之后,去node2打的时候报错了。
RabbitMQ 启动报错 Failed to check/redeclare auto-delete queue(s). access to vhost ‘/’ refused for user ‘rabbit’ 今天项目在新的服务器上启动,所有的配置文件没变,安装完rabbitmq配置好以后,启动服务 服务器配置都是一样的,网络也没问题 结果发现报错了 Failed to check/rede
问题内容: 我正在寻找一种基于类中定义的字段为现有Java源代码文件中的新方法自动生成源代码的方法。 本质上,我希望执行以下步骤: 读取并解析 遍历源代码中定义的所有字段 添加源代码方法 保存(理想情况下,保留现有代码的格式) 哪些工具和技术最适合完成此任务? 编辑 我不想在运行时生成代码;我想扩充现有的Java 源代码 问题答案: 用自动生成的代码修改相同的Java源文件是维护的噩梦。考虑生成一
我正试图用我的MERN stack web应用程序自动化构建过程。 目前,我使用CodePipeline,它: 从GitHub获取我的代码作为源代码 使用CodeBuild(Ubuntu 2.0)运行构建 并将其部署到我的Elastic BeanStalk环境中 步骤1 在尝试使用CodeBuild之后,即使客户端似乎完全按照日志进行构建,前端似乎也不会更新。 以下是我CodeBuild项目的一些
本文向大家介绍如何使用mybatis-generator自动生成代码,包括了如何使用mybatis-generator自动生成代码的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了如何使用mybatis-generator自动生成代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1、在pom文件中添加mybatis-generator
我使用eclipse生成Object的hashCode和equals方法的覆盖,并生成了一些关于hashCode覆盖的问题。下面的hashCode()是否正确? 问题: -为什么eclipse会生成两行代码?我认为将两个结果相加是合适的。知道为什么它们是分开的任务吗? -最终的int素数可以是任何素数吗? -整数结果是否应始终为 1?
问题内容: 当Java编译器将原语自动包装到包装类时,它在幕后生成什么代码?我想象它调用: 包装器上的valueOf()方法 包装器的构造函数 还有其他魔术吗? 问题答案: 您可以使用该工具亲自查看。编译以下代码: 编译和反汇编: 输出为: 因此,如您所见,自动装箱将调用static方法,而自动拆箱将在给定对象上调用。没什么,真的- 只是语法糖。
我正在根据参考指南学习使用Map结构。日食验证是 面向Web开发人员的Eclipse Java EE IDE。版本:开普勒服务版本2 pom。xml如下所示,与参考指南相同 它表示在构建项目时将生成实现代码。但是,它似乎不会在目标/生成的源文件夹下生成
Jboot 内置了一个简易的代码生成器,可以用来生成model层和Service层的基础代码,在生成代码之前,请先配置jboot.properties关于数据库相关的配置信息,Jboot 代码生成器会通过该配置去链接数据库。 jboot.datasource.type=mysql jboot.datasource.url=jdbc:mysql://127.0.0.1:3306/jbootdemo
遵照此规范,在实际操作中,有许多重复。接下来推荐一款专为本规范量身定做的代码生成器 Laravel 5.x Scaffold Generator。 本扩展支持 5.1 ~ 5.5 版本的 Laravel。 只需要一个命令: 即可生成: $ php artisan make:scaffold Projects --schema="name:string:index,description:text: