自动生成HQL代码的工具

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 本文介绍了一个可视化工具,可以通过界面增删指标并快速选择指标类型,实现快速指标更改增删,将原本1小时的工作量缩减到1分钟,提高开发效率。同时,工具可以保存配置信息快照,方便复用,并且不依赖于第三方编程语言的运行环境,降低了用户使用难度。主界面包括表的基本信息、执行按钮、代码显示窗口和表配置标签,支持一次性生成多个不同表的代码。

本文通过可视化界面增删指标,通过下拉列表快速选择指标类型,对同一份指标可以一次性生成多个版本的代码,实现快速指标更改增删,将原本1小时的工作量缩减到1分钟,极大提高了开发效率。同时本文可以保存配置信息快照,方便复用,减少多次输入参数的麻烦,并且工具运行不依赖于第三方编程语言的运行环境,大大降低了用户使用难度,同时保留了用户可编程接口方便用户个性化修改。

主界面:

 

image.png

1 本方案工具主界面

 

如图1所示,主界面主要包括四部分,表的配置表的基本信息,执行按钮,代码显示窗口,表配置标签。其中表配置标签是切换到具体表的的配置信息界面,本工具支持一次性生成多个不同表的代码,如“表一”,“表二”。

表配置界面:

image.png

2 表配置界面

其中红框内的参数都具有下拉功能,可以快速配置。用户只需要填入表名,库名,字段名和中文注释,以及选择是否为分区字段即可。“表一”字样可以更改为其它用户方便记忆的汉字或英文,最终显示在主界面的中文表名字段里。

下拉选项已覆盖HQL表配置涉及的95%参数功能,表字段可以成批量粘贴复制。

image.png

3 执行-生成代码界面

 

配置好“表一”“表二”之后,切回主界面,点击“生成表目录”会如上图生成表的基本信息,然后点解“生成sql”会生成HQL代码,如图3所示。

image.png

4 质心合并仿照层次聚类的思想进行

 

弹窗提示生成的代码的保存路径,如图4所示。

image.png

5 生成代码可视化界面

 

主界面同时会把生成的代码同步显示出来。生成的文件与工具统一路径下,如图6所示:

image.png

6 代码文件示例

 

打开生成的代码文件如下图可见,有完整的建表语句,使用的数据库,注释,类型,别名,配套的查询代码及别名,当我们要更改增删指标时可以快速更新代码,如图7,8所示。

image.png

7 代码文件展示1

 

image.png

image.png

image.png

8 代码文件展示2

 

实现原理:

image.png

9 主界面生成目录逻辑

 

 image.png

image.png

image.png

10 代码生成逻辑

 

目录
相关文章
|
监控 算法
探秘Guava的RateLimiter:单机流量控制的黄金法宝
探秘Guava的RateLimiter:单机流量控制的黄金法宝
362 0
|
供应链 小程序 物联网
B2B2C、C2F、S2B2b2C、O2O、S2B2C和各种的模式缩写解释说明
B2B2C、C2F、S2B2b2C、O2O、S2B2C和各种的模式缩写解释说明
3319 0
B2B2C、C2F、S2B2b2C、O2O、S2B2C和各种的模式缩写解释说明
|
Python
自动迁移百度网盘文件到阿里网盘,告别小水管
自动迁移百度网盘文件到阿里网盘,告别小水管
17041 1
自动迁移百度网盘文件到阿里网盘,告别小水管
|
8月前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
466 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
10月前
|
机器学习/深度学习 人工智能 jenkins
探索软件测试中的自动化与持续集成
【10月更文挑战第21天】 在软件开发的生命周期中,软件测试扮演着至关重要的角色。随着技术的进步和开发模式的转变,自动化测试和持续集成已经成为提高软件质量和效率的关键手段。本文将深入探讨自动化测试和持续集成的概念、实施策略以及它们如何相互配合以优化软件开发流程。我们将通过分析实际案例,展示这些技术如何在实际项目中发挥作用,以及面临的挑战和解决方案。此外,文章还将讨论未来趋势,包括人工智能在测试领域的应用前景。
243 17
|
10月前
|
前端开发 搜索推荐 安全
你用过最好的CMS网站管理系统?
本文主要介绍了内容管理系统(CMS)的概念、功能和使用场景。CMS是一种位于WEB前端和后端管理前端内容的软件系统,用于发布、修改、审批、发布内容。文章提到,内容管理系统在满足个性化需求和提高工作效率方面有显著优势。
1084 1
|
小程序 开发者
Taro@3.x+Vue@3.x+TS开发微信小程序,使用自定义tabBar
本文介绍了如何在Taro项目中实现自定义tabBar。首先,在`app.config.ts`中设置`custom: true`并配置`tabBar`。
763 0
Taro@3.x+Vue@3.x+TS开发微信小程序,使用自定义tabBar
|
11月前
|
Java 容器 Spring
IOC控制反转&&DI依赖注入的方法论
控制反转(IoC)是面向对象编程中用于减少代码耦合的设计原则。传统编程中,对象通过`new`关键字创建,控制权在应用手中。而在Spring框架下,对象由IoC容器管理并创建,通过依赖注入(DI)机制,自动将所需资源注入对象中,从而实现对象间的解耦。DI有两种实现方式:构造方法注入和属性setter方法注入。通过IoC和DI,程序更易于维护和测试。
266 0
|
消息中间件 存储 容灾
深入理解Kafka核心设计及原理(一):初识Kafka
深入理解Kafka核心设计及原理(一):初识Kafka
1453 7
|
人工智能 Kubernetes 开发者
容器化技术在AI开发流程中的应用
【8月更文第17天】随着人工智能(AI)技术的快速发展,如何高效地开发、测试和部署AI模型成为了一个重要的课题。容器化技术,如Docker和Kubernetes,为解决这一问题提供了强大的工具。本文将探讨这些技术如何简化AI应用程序的开发流程,并提高模型的可移植性和可扩展性。
636 0