完全开源的代码生成器之code-generator

news2024/10/7 10:17:43

什么是code-generator

code-generator是一个低代码平台, 可以解决90%单表增删改查工作量, 你可以通过自定义代码模板来生成适合自己的代码。

目前该系统主要针对的是语言是java, 数据源是mysql(其他数据库待测试),数据源支持mysql, oracle, dm, PostgreSql等数据库。

支持vue前端吗? 理论上只要你定义好了vue代码模板, 也是可以支持前端代码生成

  • java8运行环境, 数据存储使用的是内嵌h2数据库(可切换到mysql)
  • 构建代码采用 maven3.8

简介

常用代码模板

gitee代码仓储

使用的技术栈

前端:

  • vue3 + vite3 + ts(框架基于vben)

后端:

  • springboot2.7 + mybatis plus

依赖的公共库:

  • project-commons: https://gitee.com/sgy_project/project-commons
  • 这个库是我对项目中常用的第三方组件进行了再次封装, 同时也增加了很多自定义功能
  • v1.0.0采用springboot 2.7.3

启动项目

  1. 下载源码并进入到bin目录下

  2. 前端代码已经被构建好了(front/dist.tar.gz), 如果你想要重新构建则执行 bash build-front-end.sh(如果你使用的是windows, 可以使用git命令行执行该命令)

  3. 构建后端项目, 构建好了之后, 会在bin目录下生成一个jar包

    cd bin
    bash build-back-end.sh

  4. 在startup.sh中配置mysql的host & username & password

  5. 启动后端: bash startup.sh

  6. 浏览器访问: http://127.0.0.1:18081

  7. 随便输入账号 + 密码 + 验证码即可进入系统

切换到mysql数据库(可选)

默认采用的是h2内嵌数据库, 你可以通过配置一些参数来使用mysql数据库

  1. 编辑bin/startup.sh文件, 配置如下
## mysql数据库配置
MYSQL_HOST=mysql.project.com:53306
MYSQL_USERNAME=root
MYSQL_PASSWORD=project_dev@nwt
## 使用的数据库
USE_DB=mysql

h2数据迁移到mysql(可选)

如果你一直采用默认的内嵌h2数据库, 突然有一天想要使用mysql数据库, 则可以通过一下步骤完成数据的迁移

  1. 编辑bin/startup.sh文件, 将H2_TO_MYSQL=true & USE_DB=mysql, 同时要配置mysql配置
## mysql数据库配置
MYSQL_HOST=mysql.project.com:53306
MYSQL_USERNAME=root
MYSQL_PASSWORD=project_dev@nwt
## 使用的数据库
USE_DB=mysql
# 将h2数据迁移到mysql
H2_TO_MYSQL=true
  1. 启动服务: 迁移完数据后程序会自动退出
cd bin
bash startup.sh
  1. 关闭h2数据迁移到mysql, 配置H2_TO_MYSQL=false, 然后重启启动项目即可

使用步骤

创建数据源

点击测试可以测试是否可以连接到数据库

在这里插入图片描述

可以指定如下生成相关数据

  • 删除的前缀
  • 包名
  • 作者名称

导入数据源的表

在这里插入图片描述
在这里插入图片描述

导入成功之后, 点击编辑按钮

  • 可以编辑基本信息, 生成信息, 字段信息, 页面属性, 索引等数据
  • 其中生成信息中配置的生成包路径优先级大于数据源中配置的包路径

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qczq4zN3-1670932318328)(./img/3.png)]

  • 页面属性中显示类型和查询方式都可以在字典模块中进行配置
    在这里插入图片描述

导入word中的表

目前支持doc和docx格式word文档导入

要求word文档格式如下

  • 除了数据库表格之外不能有多余的表格
  • 标题格式: 表说明 + 空格 + 表名(只能是英文+下划线, 其他符号被会去掉)

示例word: 简介并快速启动 (yuque.com)

导入word中的表单配置
在这里插入图片描述

生成代码

在这里插入图片描述
在这里插入图片描述

页面截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

借鉴的开源项目

  • 后端借鉴: code-gen: 一款代码生成工具,可自定义模板生成不同的代码,支持MySQL、Oracle、SQL Server、PostgreSQL
  • 前端借鉴: jeecg-boot
  • 若依代码生成页面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/86257.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]计算机毕业设计的在线作业批改系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis MavenVue等等组成,B/S模式…

Revit 中注释族的应用详解及公共族库工具

一、Revit 中注释族的应用详解: 注释族是用来表示二维注释的族文件,它被广泛用于很多构件的二维视图表现。下面以一个实例来说明注释族的应用 1、注释族创建实例 用“公制常规注释.rft”族样板创建一个注释族,在“族类别和族参数”对话框中选…

视觉SLAM ch9

状态估计的概率解释:位姿x和路标y服从某种概率分布,目的是通过某些运动数据u(比如惯性测量传感器IMU输入)和观测数据z(比如拍摄到的照片像素点的值)来确定状态量x和y的分布。 一、关于卡尔曼滤波器和扩展卡…

ssm+Vue计算机毕业设计校园食堂订餐系统(程序+LW文档)

ssmVue计算机毕业设计校园食堂订餐系统(程序LW文档) 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技…

Vim解决问题的方式

目录1 认识 . 命令2 不要自我重复3 以退为进4 执行、重复、回退5 查找并手动替换1 认识 . 命令 . 命令让我们重复上次的修改,它是Vim中最为强大的多面手。我们来练习下,如何快速的在vim进行操作,由下图形: 转成如下图形&#x…

win10下CH340模块下载stc89c52程序

没想到读研究生了还有水课需要用上51单片机,本科的时候一直是用开发板烧录程序的,这次舍不得花钱买开发板只能瞎折腾了。 准备材料 1.ch340转接板,最普通的那种3~5块钱 2.买的是一个焊接好的小单片机系统 (BB一句,这…

内皮细胞生长添加剂(ECGF/ECGS)丨艾美捷解决方案

内皮细胞生长添加剂(ECGF/ECGS)是一种内皮细胞体外培养不可缺少的补充物质,可以优化细胞的体外生长环境,促进内皮细胞的正常增殖和生长。ECGF/ECGS是一种无菌浓缩(100X)溶液,含有正常人内皮细胞…

仅5天注册用户超百万,爆火ChatGPT究竟是什么?

作者:qizailiu,腾讯 IEG 应用研究员,来自腾讯技术工程 OpenAI 近期发布聊天机器人模型 ChatGPT,迅速出圈全网。它以对话方式进行交互。以更贴近人的对话方式与使用者互动,可以回答问题、承认错误、挑战不正确的前提、拒…

大数据集群HIVESQL经常执行失败问题调查

一、背景 BI集群,有60多个节点,2P数据,机器都已经运行了3年以上 二、现象 提交hive任务会经常失败,有时候能成功,上午失败概率大,下午成功的概率大。 异常日志: 日志1、 2021-09-30 08:28:35.…

攻防世界 easyphp

Easyphp 对于初学者其实一点也不easy哈 打开题目场景 <?php highlight_file(__FILE__); $key1 0; $key2 0;$a $_GET[a]; $b $_GET[b];if(isset($a) && intval($a) > 6000000 && strlen($a) < 3){if(isset($b) && 8b184b substr(md5($…

xxljob-core包handler文件夹里面的文件,MethodJobHandler类,让我们自己项目使用,就是将要执行的方法放到人家对象里面

目录 1 handler文件夹2 总结1 handler文件夹 以上是目录结构。 IJobHandler 是一个抽象类,具体的实现类就是impl里面的文件 那这个抽象类里面有什么方法 /*** job handler 任务处理触发器* 就是 要执行哪些代码* 抽象类* @author jing*/ public abstract class IJobHand…

Postgresql源码(93)Postgresql函数内事务控制实现原理(附带Oracle对比)

相关 《Postgresql源码&#xff08;60&#xff09;事务系统总结》 《Postgresql源码&#xff08;93&#xff09;Postgresql函数内事务控制实现原理&#xff08;附带Oracle对比&#xff09;》 0 总结 Postgresql与Oracle都是扁平化处理函数内外的事务控制语句的&#xff1a;即函…

aws eks 节点驱逐和OOMkill

资料 解决 K8s 调度不均衡问题kubernetes pod内容器状态OOMKilled和退出码137全流程解析 集群中pod触发oom的原因 默认pod能够使用节点的全部可用资源。节点的可分配资源如下 Allocatable Node Capacity - &#xff08;kube-reserved&#xff09; - &#xff08;system-res…

Linux基本指令(2)

Linux基本指令(2) &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客将展示25-30个LInux中常用的命令&#xff0c;…

计算机网络第9章 无线网络和移动网络

目录 9.1 无线局域网 WLAN 9.1.1 无线局域网的组成 1. 无线局域网 WLAN (Wireless Local Area Network) 2. IEEE 802.11 3. 移动自组网络 9.1.2 802.11 局域网的物理层 9.1.3 802.11 局域网的 MAC 层协议 1. CSMA/CA 协议 2. 时间间隔 DIFS 的重要性 3. MAC两个子层…

fpga实操训练(按键消抖)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 之前我们谈到按键输入&#xff0c;其中涉及的功能就是&#xff0c;当按键按下的时候&#xff0c;led灯亮起来。等到按键弹起来的时候&#xff0c;l…

NLP领域表达退化各向异性理解及对应策略总结

前言&#xff1a;今年8月份在与同学撰写deepfake相关论文的过程中偶然听导师提到各向同性与各向异性这两个词&#xff0c;当时以为这是cv领域的概念&#xff0c;回去一查发现是物理领域的&#xff0c;就没再深究。最近看到一篇使用对比学习解决开放式长文本生成中模型退化问题的…

在 Spring Boot 中使用 HikariCP 连接池

目前星标 12K&#xff0c;被使用次数更是达到了 43.1K。再来看看它的自我介绍。 牛逼的不能行啊&#xff0c;原来 Hikari 来源于日语&#xff0c;“光”的意思&#xff0c;这意味着快得像光速一样吗&#xff1f;讲真&#xff0c;看简介的感觉就好像在和我的女神“汤唯”握手一样…

基于SSM的企业管理系统

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

[ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…