| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> EZDML批量生成spring-boot jpa swagger2 lombok后端接口 -> 正文阅读 |
|
[Java知识库]EZDML批量生成spring-boot jpa swagger2 lombok后端接口 |
EZDML是一款国产免费的轻量级数据建模工具,具有轻巧、快速、简便而功能强大的特点,可轻松地进行数据库表结构设计,建立界面数据模型,支持通过自定义脚本模板生成测试数据、界面原型和前后端代码文件。 当然了,数据建模才是EZDML主职,对于后端来说,如何设计表结构是首要的问题,解决业务问题不能只依靠代码生成,复杂的软件开发没有银蛋。不过其实EZDML的代码生成部分也很强,反正表都设计好了再生成一下也是顺便,现在生成代码工具满天飞,我们就凑个热闹。 上一篇讲了用EZDML生成vue-element-admin前端,这回来试下折腾下后端接口的生成。还是分两步走,先人工做单个表的模板工程,再转成批量自动生成。本文图多内容枯燥,大家多包涵。 运行环境:JDK8,idea64,EZDML for win64 v3.27。 还是从零开始吧,新建项目,从start.spring.io创建,打开浏览器: 选择了Lombok、JPA、H2作为附加依赖,生成项目文件下载解压: 用idea打开,等待初始化构建完成: ?这时已经是可以运行的了: 可以从浏览器访问,只不过没有内容: 在src/main的com.ezdml.codegen.ezdmlcodegendemo下新建子目录包ezmodel.eztable,并创建EzEntity实体对象类,以及对应的Repository类和Controller,内容都是超级简单的: 现在流行yml,删除application.properties,创建application.yml,编辑内容如下:
再次运行,在浏览器输入/ez_table的地址,可以看到有响应了,虽然是空的: 接下来创建Service接口和实现类: 并在Controller上添加相应接口(删除之前那个helloc测试函数): 再次运行,这时可以用add方法添加记录了: 添加两条后,可以用list看到结果: ?日志可以看到执行了相关SQL: ?打开http://localhost:8080/h2-console,输入yml中配置的信息登录: 可以看到数据确实保存了: 接下来添加swagger支持(在pom.xml中添加内容,在右侧Maven栏中点刷新按钮):
修改application.yml,在EzdmlCodeGenDemoApplication上添加@EnableSwagger2注解,并创建SwaggerConfig类: ?修改Controller添加swagger api注解: ?运行,报空指针NullPointerException错误,按网上说明,在yml中添加以下内容:
?再次运行成功 : 打开http://localhost:8080/api-docs: ?打开http://localhost:8080/swagger-ui.html: 一切正常,至此人肉基础模板工程准备完毕。 接下来开始批量自动生成的转换。打开EZDML的脚本目录(我机上是D:\EZDML\Templates),创建springJpaSwaggerDemo目录: 将模板工程的src目录复制过来: 只保留\src\main\java\com\ezdml\codegen\ezdmlcodegendemo下的ezmodel子目录及其文件,其它的全部删除,因为我们只需要生成这个目录: ?在根目录src旁边创建_dml_config.INI文件,内容如下:
意思生成时不要创建“springJpaSwaggerDemo”这个根文件夹。 ?然后转到src\main\java\com\ezdml\codegen\ezdmlcodegendemo下,在ezmodel旁边创建_dml_config.INI文件: ?内容如下:
意思就是将这个目录改为模型名: ?再进入ezmodel目录,在eztable旁边创建_dml_config.INI文件,内容如下:
?意思是为模型中的每个表复制eztable这个目录,并改名为表名(汉字转拼音,下划线命名)。 我们先运行一下: 嗯,确实生成了需要的目录,只剩下最后的类文件了。 进入eztable子目录,创建_dml_config.INI文件,内容如下:
??把5个java文件转成JS模板,以EzEntity.java为例:
其它几个文件类似的,不细述了。 接下来,重新执行生成,将输出文件夹指定为之前的ezdml-code-gen-demo目录: 生成结果示例: 尝试编译OK,不过,运行时提示,AdminRole这个对象没有主键: ?嗯,这个是多对多的纯关联表,把它移除,下次生成时不要勾选它,或者直接在这个表的生成选项里禁止生成代码: ?再次运行,一切正常,swagger接口出来了: ? 至此一个简单后端接口的批量生成模板就做好了。新版本EZDML已经带了这个示例工程,同样也加了个生成后的启动菜单SHELL脚本: 安装后的文件位于EZDML下的\Templates\SpringJpaSwagger目录,同时也上传到了gitee: https://gitee.com/huzgd/spring-jpa-swagger-demo?(请选择ezdml_demo分支) 大家可以在此基础上继续修改实现的自定义模板内容。 我把上期生成的前端跟这个生成的后端接口对比了一下,两者的接口格式有点不一样,由于时间精力有限,我暂时没有做合并对接处理,呵呵,真的是“前后端分离”了。 我平时开发用iBatis/myBatis较多,基本上不用swagger和JPA,所以估计会有一些错漏问题,有任何问题可加Q群沟通(见软件的帮助、关于),谢谢! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 9:25:07- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |