黑神话:仙童,数据库自动反射魔法棒
Golang 通用代码生成器仙童发布了最新版本电音仙女尝鲜版十一及其介绍视频,视频请见:https://www.bilibili.com/video/BV1ET4wecEBk/
此视频介绍了使用最新版的仙童代码生成器,将 MariaDB 数据库迁徙至 PostgreSQL,或者将数据库整理成一个 Excel 文件的方法,详细情况请见视频。
通用代码生成器是一种非常方便的软件开发工具,除了简单直接的生成代码,制作快速原型以外。通用代码生成器还可以应用在各种场景上。比如可以使用通用代码生成器,将 MariaDB 数据库连数据迁徙到 PostgreSQL。操作并不复杂,却十分适用。
视频中,我们采用最新发布的 golang 通用代码生成器仙童 2.4.0 电音仙女尝鲜版十一来完成这项功能,在完成数据库迁徙的同时,我们得到了一个副产品,即 Golang 的应用程序。
本例子使用的数据库是 TKCourseManagement 和 CivMariaSample 数据库,此前已经在多个视频演示中使用,大家应该比较熟悉了。
golang 通用代码生成器仙童的项目地址为:https://gitee.com/jerryshensjf/Fairchild
其二进制发布包下载地址为:https://gitee.com/jerryshensjf/Fairchild/attach_files
Go 语言通用代码生成器:仙童
项目简介
Go 语言通用代码生成器:仙童,基于 Java 通用代码生成器:光的架构。
生成的代码基于 go 语言,使用 gin 作为 web 框架。目前支持 MariaDB,MySQL,PostgreSQL 和 Oracle 四种数据库。支持生成 Vue 和 ElementUI 的基于 Node.js 的独立前端。支持 Excel,PDF 两种数据导出格式。
项目图片
最新大版本号
正在研发的最新大版本号是仙童 2.4.0 电音仙女 TechnoFairy 短名 TF。对标 java 通用代码生成器光 2.4.0 电音之王和 Rust 通用代码生成器红莲。
Golang 通用代码生成器仙童,2.4.0 电音仙女尝鲜版十一。版本彻底增强修复了数据库自动反射功能。并有更多测试修复。
Golang 通用代码生成器仙童,2.4.0 电音仙女尝鲜版十。版本增强修复了数据库自动反射功能,修复了多对多数据加载。增强了复数字典,新加了 SGS2 模板。
Golang 通用代码生成器仙童 2.4.0 电音仙女尝鲜版九。此版本支持完善的数据库自动发射功能。大大完善了数据与元数据编辑器功能,是一个重要的版本更新。
Golang 通用代码生成器仙童,电音仙女尝鲜版八,此版本增强修复了数据库自动反射功能。更新修复了前端代码生成器无登录模块时的错误。修复了多对多候选的缺陷。修复了清洗登录数据功能。
Golang 通用代码生成器仙童,电音仙女尝鲜版七,此版本测试修复了 PostgreSQL 数据库自动反射功能。此版本更新修复了前端代码生成器,并修复了前端多对多界面的缺陷。
Golang 通用代码生成器仙童,电音仙女尝鲜版六,此版本新增了数据库自动反射功能,可以为遗留数据库配上操作软件。此版本增强了模板向导界面的编辑器功能,可以不清空数据的情况下编辑项目的元数据和数据。可以切换域对象和枚举,可以清洗登录数据。此版本新增了多对多候选功能,支持多对多候选的编辑,持久化和反射功能。此版本彻底修复了枚举和哑数据功能。并有前端界面更新。
百度话题
#通用代码生成器#
重点组件和功能
- 动词算子
- 域对象
- 棱柱
- 项目
- 时空之门前端代码生成器引擎
- 弹性登录模块
- Grid 页生成模块
- 多对多生成模块
- 数据库脚本生成模块
- 动态椰子树功能群
- 动词否定功能群
- 字段否定功能群
- 高级定制功能群
- 部分生成功能群
- 自动生成差异版本功能群
- 上传生成界面
- 模板向导生成界面
- 自动生成差异版本生成界面
- Excel 数据导出功能
- PDF 数据导出功能
- 数据库后端模式
- 数据库工具模式
- 哑数据模式
- 数据库自动反射功能
开发测试环境
- jdk 21
- Apache Tomcat 9
- Node.js 21, 18, 14
- golang 1.22
- MariaDB 15.1
- MySQL 8
- PostgreSQL 16
- Oracle 11
安装教程
- 先装好 open jdk 21 和 Apache Tomcat 9,如果您从源码编译代码生成器还需要事先装好 Apache Maven
- 下载编译好的 Golang 通用代码生成器仙童的 war 包,或者下载源码,解压后使用 mvn install 命令编译,得到代码生成器的 war 包
- 把代码生成器的 war 包的名字改短,成为 Fairchild.war,并放置在 Apache Tomcat 9 的 webapps 目录下
- 启动 Apache Tomcat 9
- 访问 http://localhost:8080/Fairchild/
- 即可使用代码生成器
后端代码生成物运行
- 使用代码生成器生成一个示例或自己的 SGS2 模板,得到两个代码生成物,一个前端,一个后端
- 将后端项目下载并解压
- 根据您的数据库选项,配置好您后端的数据库,并使用后端代码生成物的 sql 文件夹下的数据库脚本完成建库建表并加载初始化数据
- 您需要检查后端代码生成物内的配置文件,确认数据库和用户名密码的正确性
- 您需要安装配置好 Golang 1.20 或其他兼容版本的 Golang 环境
- 在后端代码生成物的根目录下运行 go mod tidy
- 在后端代码生成物的根目录下运行 go mod download
- 在后端代码生成物的根目录下运行 go mod vendor
- 在后端代码生成物的根目录下运行 go run Server.go
- 启动完毕后访问后端代码生成物,http://localhost:8081
前端代码生成物运行
- 使用代码生成器生成一个示例或自己的 SGS2 模板,得到两个代码生成物,一个前端,一个后端
- 将前端代码生成物解压
- 确认您已经安装好和您选择的 Nodejs 版本相容的前端 Nodejs 环境
- 使用 npm install -registry=https://registry.npm.taobao.org 安装 Nodejs 依赖包
- 如果您使用的是 Nodejs 21 和 Nodejs18,请运行命令:export NODE_OPTIONS=--openssl-legacy-provider
- 运行命令:node --max-http-header-size=1000000 ./node_modules/.bin/webpack-dev-server --inline --progress --config build/webpack.dev.conf.js
- 如此访问前端代码生成物,http://localhost:8000/
百度话题
#通用代码生成器#
代码生成器截图
代码生成器正在研发中,2.4.0 尝鲜版十一已发布。
电音仙女尝鲜版十一下载
二进制发布包下载地址:
附件 · 火鸟/Go语言通用代码生成器:仙童 - Gitee.com
电音仙女最新视频
电音仙女尝鲜版十一介绍视频请见: https://www.bilibili.com/video/BV1ET4wecEBk/
电音仙女尝鲜版九介绍视频请见: /BV1jKHgeKEjP/](https://www.bilibili.com/video/BV1jKHgeKEjP/)
电音仙女尝鲜版八
[https://www.bilibili.com/video/BV11maXeYE12/ https://www.bilibili.com/video
https://www.bilibili.com/video/BV1LJvve6Ed9/
电音仙女尝鲜版七 https://www.bilibili.com/video/BV1eT421a7j5/
电音仙女尝鲜版六 https://www.bilibili.com/video/BV1Sr421c7zY/
仙童的安装运行
仙童是使用 Java 语言写成的代码生成器。运行仙童您需要装好 Java8 和安装好 Tomcat9 或 8.5 应用服务器。并把仙童的 war 包部署在 Tomcat 的 webapps 目录下。
代码生成物的运行还需要安装好 Go 语言开发环境,您要使用 go mod 管理依赖,并把代码生成物解压在 go 语言工作空间的 src 文件夹的一级子目录下。还需要对应的数据库服务器运行代码生成物的建库 sql 脚本。
前端代码生成物的运行需要装好 node.js 运行环境并安装 js 依赖库。
Vue 独立前端截图
代码生成物截图
源码编译用户指南
通用代码生成器已经支持自己编译源码,我已把原来缺的前端代码生成器的 jar 包上传。支持大家自行编译源码。
需要注意的是,现在我的开发平台是 Fedora 37 上的 openjdk 17。所以大家编译源码最好使用 openjdk17。编译好的 war 包运行在 apache tomcat 9.0 上。
已有 jdk8 的用户报告默认下载的代码生成器 war 包在他的平台上无法运行。您如果遇到类似问题请报告。我的电子邮件是:jerry_shen_sjf@qq.com
附 openjdk 17 下载地址:
https://jdk.java.net/java-se-ri/17
使用前端功能的注意事项
由于图片文件比较大,原来前端使用 cnpm instll 安装类型,npm run dev 运行有所改动,改为先使用 npm install --registry=https://registry.npm.taobao.org 安装类库,出错后使用 cnpm install 安装类库, 使用 node --max-http-header-size=1000000 ./node_modules/.bin/webpack-dev-server --inline --progress --config build/webpack.dev.conf.js 运行系统。
您也可以从安装好的本系列代码生成器的前端项目中拷贝 node_modules 目录,即可运行前端。
node-sass 不兼容的解决办法
办法一:
npm uninstall node-sass
npm install sass-loader
npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
办法二:
npm uninstall sass-loader node-sass //卸载
npm install sass-loader@7.3.1 node-sass@4.14.1 --save-dev //安装对应的版本
动词算子式代码生成器的应用场景
1. 项目前期
通用代码生成器是一种自动化编程软件,是一种先进的编译系统。它具有表级抽象。把系统抽象为域对象,枚举,弹性登录模块,复杂版面和图形报表。使用通用代码生成器完成项目前期,比直接使用对应的高级语言快的多,也方便的多。
在常规的项目开发阶段,可以分为前期,中期和后期。前期完成设计,数据库设计,项目初始化,数据库初始化和 CRUD 等常用功能的开发。
中期是各种业务功能的开发。
业务功能开发完成后,项目即进入后期。后期主要是测试,修错。完成项目 Change Request 和基线化,代码冻结。构建软件发布包,给客户安装,用户培训等等。
当客户签章认可软件交付物,软件的开发阶段就结束了,进入了软件的售后服务阶段。
通用代码生成器对软件开发而言,在项目前期的价值最大。它可以把月余的项目前期压缩到短短数日。从而为您的设计和开发增加数周的时间。用于设计,您可以更加详细。用于开发,大大缓解开发时间的紧张。而且,由于通用代码生成器的高生产率,您可以采用多轮设计,采用迭代式的项目设计循环,使设计阶段结束时,系统更全面更一致,同时仍然可以节约数周的时间帮助开发阶段。
通用代码生成器为项目全周期迭代式的使用通用代码生成器做了优化。它可以精确的控制代码生成物。可以按水平层级或者按竖直功能选择性的输出代码生成物,并可以同时使用水平和竖直的控制功能。最强大的是,您可以上传同一个项目的不同时期的 SGS2 模板,系统会对比两个版本,自动生成两个版本的差异部分,而一致的,它不输出。利用这个功能,您可以定向,只修改更改的部分,结合归并工具的功能,可以成数量级的提高劳动生产率。
2. 快速原型
对项目经理,产品经理和售前工程师而言,开发快速原型是一种常见的需求。使用通用代码生成器,您可以更好,更快的开发系统的快速原型。通用代码生成器对完成 CRUD 和登录系统阶段的快速原型比手工编程快的多,典型情况,您可以使用一天时间完成如此规格的快速原型,而直接编程,您可能至少需要两周时间才可以达到同样的完成度。故使用通用代码生成器,您可以更快的完成快速原型,您也有更多的时间,使您的原型达到更高的完成度。
并且,通用代码生成器有专门为快速原型设计的哑数据模式。此模式不使用数据库,而是使用硬编码的哑数据作为数据来源,它方便您给不同的客户多次演示,不需要担心数据遗留问题。只需要重新启动,数据即回归到原始数据,没有搞错演示数据的烦恼。而且,您可以和您的客户共享此快速原型。客户可以深入研究此快速原型,但无法直接使用此快速原型,因为此快速原型没有数据持久化功能。对双方都很方便。
3. 遗留项目反向工程
如果您有一个遗留项目,要重新开发,或者源代码遗失,或者需要重新开发,但是希望复用原来的数据,并加快开发。
如果您的项目是通用代码生成器生成的,如果您保留了它的 SGS 源文件或 SGS2 的 Excel 模板,您可以使用这些资源重新生成。
但是大多数遗留项目都没有这些资源,或者本来就不是通用代码生成器生成的。这种情况下,您只需要有系统的数据库,并且,这个数据库是 MariaDB,MySQL 或者 PostgreSQL 的。您就可以使用 Rust 通用代码生成器莲花的数据库自动反射功能来反向工程这种遗留项目。借助这个功能,您可以把一个数据库反射为一个莲花的 Project。并可以进一步将数据库反射为一个 Rust 语言项目或者一个莲花的 SGS2 模板。
借助 Java 通用代码生成器光和 Golang 通用代码生成器仙童的 Rust 语言兼容性。您可以把这个莲花的 SGS2 模板生成为 Java 语言项目或 Golang 语言项目。
这个数据库自动反射功能可以保留原系统的数据,您不需要重新开始。
4. 跨编程语言翻译
如果您有一个 Java 工程,想把它移植到 Rust 或 Golang 语言中去,希望尽可能加快研发速度。
如果您的系统是通用代码生成器开发的,保留了系统的 SGS 源文件或者 SGS2 的 Excel 模板,您可以使用这些源文件或模板结合您的目标语言生成新语言的代码生成物,以加速新语言的应用程序的开发。
如果您没有保留此源文件或模板,或者您的应用系统是手工搭建的或使用了其他来源。您可以使用数据库自动反射功能达到需求。如果您使用的是 MariaDB,MySQL 或者 PostgreSQL。您可以使用 Rust 通用代码生成器莲花新版本的数据库自动反射功能,将数据库反射成 Rust 应用程序,您也可以将数据库反射为一个 SGS2 的 Excel 模板。而后通过 Java 通用代码生成器光或 Golang 通用代码生成器的 Rust 语言兼容性功能,将此 SGS2 模板编译成 Java 或 Golang 的应用程序,在此过程中,您可以保留数据库中的所有数据,不必从零开始。
5. 任意需求应用急就章
在中国文化中,如果您在任何的政府,商业或者私人事务上需要表明身份。您需要一枚自己的私章。如果在必须的场合,您没有此私章。如果您知道如何刻写图章,可以临时使用普通的石料甚至萝卜,肥皂等等,刻写一个临时性的图章使用,这就是所谓的急就章。
通用代码生成器也有类似功能。如果您有一个业务或者需求,但是您没有现成的电子商务系统,您往往是使用 Excel 表格或者 Acess 数据库来完成这些功能的簿记和管理工作。但这种方法有明显缺陷,首先,如果随着业务的流转,多人手头有不同的 Excel 表单,如果数据不一致,您很难找出正确的答案,而且,没有统一的密码和登录系统,容易泄密和忘记密码。
有了通用代码生成器,可以完美的解决这一问题。您可以利用和写一个 Excel 表单同等的时间写一个 SGS2 的 Excel 模板,利用代码生成器生成一个系统临时凑和着用,几乎是零成本的。您可以轻易的拥有数据库管理系统的全部优势,就是特定功能少一些而已,而数据库的簿记功能可以完美的使数据一致性问题,多人同步工作问题完美解决。同时,您零成本的拥有了一个完善的系统的密码和登录系统,每个人可以维护自己的密码,而系统管理员也可以有效的管理,支持和急救。
所以,通用代码生成器的代码生成物是可以直接使用的,它有完善的通用功能,就是没有定制功能而已,对于任何需求,这种代码生成物都远远优于 Excel 表格,而成本是一样的。通用代码生成器的代码生物可以完成完善的电子商务系统 70% 的功能。这就是通用代码生成器的急就章功能。
6. 为完善的应用系统收集需求
使用急就章功能可以开发一个简单的应用先凑和着使用。此应用系统也可以成为完善的应用系统的原型和祖先。如果您新规划一个完善的应用系统,您可以先使用通用代码生成器生成一个临时使用的系统,并在实际的使用中收集需求和现用系统的不足,然后您可以使用手工编程完善此系统,得到一个完善的应用系统。
使用数据库自动反射功能,您可以把原型系统内的您需要的数据迁徙到新的完善的应用系统,
源码研读者注意事项
无垠式代码生成器第一个完整版本源码,有兴趣可以抄写一下:
无垠式代码生成器第一个完整版本0.6.5: 现在动词算子式代码生成器已经公布了无垠式的最后版本0.8.5。和平之翼代码生成器已进化到4.1版本。 谁有兴趣研究早期的动词算子式代码生成器。 我有所有的版本。其中无垠式代码生成器0.6.5是早期的完整版本,但是只有simplejee一个技术栈。对原理学习,可能是最佳的。此版本为原理学习,自己动手的参考。我会回答关于原理的问题,不会修正此版本的Bug(其实在后续版本中已经解决。)
相关技术视频:
https://www.bilibili.com/video/BV1eT421a7j5/
https://www.bilibili.com/video/BV1Sr421c7zY/
https://www.bilibili.com/video/BV1fX4y1u7Bn/
https://www.bilibili.com/video/BV1rv41187qY/
https://www.bilibili.com/video/BV1xv41187cA/
https://www.bilibili.com/video/BV1t64y1v7WA/