使用mybatisplus 和vben实现低代码开发

前言

如今软件的开发,低代码开发可以3天就做一个CRM,感觉程序员都要失业了的节奏。我们这边用了mybatisplus,其官方也推荐了几个低代码平台,有兴趣的同学可以去看看。我们就直接用mp提供的FastAutoGenerator来进行代码生成。
接下来我们用log表来举例:

一、第一步,创建log表

一般的低代码平台都是直接前端拖拽生成数据表,然后完成低代码生成。我们这个就简单一点,只是多少提高下开发效率。这里我们先手动创建表


DROP TABLE IF EXISTS log;

CREATE TABLE log
(
    id            bigint UNSIGNED NOT NULL COMMENT 'ID' AUTO_INCREMENT,
    uid           bigint UNSIGNED NOT NULL COMMENT '操作用户id',
    username      varchar(255)  DEFAULT NULL COMMENT '用户名',
    level         tinyint DEFAULT '1' COMMENT '日志等级:1为行为日志,2为错误日志',
    description   varchar(255)  NULL DEFAULT NULL COMMENT '操作描述',
    req_param     text  NULL COMMENT '请求参数',
    take_up_time  int(64) NULL DEFAULT NULL COMMENT '耗时',
    method        varchar(255)  NULL DEFAULT NULL COMMENT '操作方法',
    uri           varchar(255)  NULL DEFAULT NULL COMMENT '请求url',
    ip            varchar(50)  NULL DEFAULT NULL COMMENT '请求IP',
    version       varchar(50)  NULL DEFAULT NULL COMMENT '版本号',
    created_at    datetime NULL DEFAULT NULL COMMENT '创建时间',
    updated_at    datetime NULL DEFAULT NULL COMMENT '修改时间',
    PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

二、第二步,使用FastAutoGenerator生成前后端代码

FastAutoGenerator.create("jdbc:mysql:///sbvadmin", "sbvadminuser", "Sbvadmin")
            .globalConfig(builder -> {
                builder.author("billy") // 设置作者
                    .disableOpenDir() //禁止打开输出目录
                    .outputDir("src/main/java/com/shenfangtao/generator/tempFiles"); // 指定输出目录
            })
            .packageConfig(builder -> {
                builder.parent("com.shenfangtao") // 设置父包名
                        .entity("model") //设置entity包名
                        .other("vue") // 前端页面生成放入的临时包
                    .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "src/main/java/com/shenfangtao/generator/tempFiles")); // 设置mapperXml生成路径
            })
            // 策略配置
            .strategyConfig((scanner, builder) ->  {
                inputTables = getTables(scanner.apply("请输入表名,多个英文逗号分隔?所有输入 all"));
                builder.addInclude(inputTables)
                    .controllerBuilder().enableRestStyle().enableHyphenStyle().superClass("com.shenfangtao.controller.BaseController")
                    .entityBuilder().enableLombok().addTableFills(
                            new Column("create_time", FieldFill.INSERT)
                    ).build();
            })
            .injectionConfig((scanner, builder) -> {
                Map<String,String> customFile = new HashMap<>();
                customFile.put("LIST_VIEW",VueFileEnum.LIST_VIEW.getTemplate());
                customFile.put("ADD_EDIT_VIEW",VueFileEnum.ADD_EDIT_VIEW.getTemplate());
                customFile.put("VIET_DATA",VueFileEnum.VIET_DATA.getTemplate());
                customFile.put("API",VueFileEnum.API.getTemplate());
                customFile.put("MODEL",VueFileEnum.MODEL.getTemplate());
                builder.customFile(customFile);
            })
            .templateEngine(new EnhanceFreemarkerTemplateEngine())
            .execute();

先看下我们生成的代码

使用mybatisplus 和vben实现低代码开发
其中controller,mapper,model,service都是mp生成的后端代码,vue文件中是我们自定义的前端代码,根据vben结构生成的。

三、第三步,将生成的代码移动到相应的位置

这里我写了一个sh脚本,来完成这件事。这里前提是将sbvadmin和sbvadmin-vben放在同一个文件夹下。

#!/bin/bash
echo '*************************开始移动后端文件*************************'

mv -n src/main/java/com/shenfangtao/generator/tempFiles/com/shenfangtao/vue/controller/* ../admin-web/src/main/java/com/shenfangtao/controller
mv -n src/main/java/com/shenfangtao/generator/tempFiles/com/shenfangtao/model/*.java ../admin-model/src/main/java/com/shenfangtao/model
mv -n src/main/java/com/shenfangtao/generator/tempFiles/com/shenfangtao/mapper/*.java ../admin-mapper/src/main/java/com/shenfangtao/mapper
mv -n src/main/java/com/shenfangtao/generator/tempFiles/com/shenfangtao/service/impl/*.java ../admin-service/src/main/java/com/shenfangtao/service/impl
mv -n src/main/java/com/shenfangtao/generator/tempFiles/com/shenfangtao/service/*.java ../admin-service/src/main/java/com/shenfangtao/service
mv -n src/main/java/com/shenfangtao/generator/tempFiles/*.xml ../admin-mapper/src/main/resources/mapper
mv -n src/main/java/com/shenfangtao/generator/tempFiles/com/shenfangtao/vue/sql/* ../admin-web/src/main/resources/db/migration
echo '*************************开始移动前端文件*************************'
mv -n src/main/java/com/shenfangtao/generator/tempFiles/com/shenfangtao/vue/api/*.ts ../../../sbvadmin-vben/src/api/sbvadmin
mv -n src/main/java/com/shenfangtao/generator/tempFiles/com/shenfangtao/vue/model/*.ts ../../../sbvadmin-vben/src/api/sbvadmin/model
mv -n src/main/java/com/shenfangtao/generator/tempFiles/com/shenfangtao/vue/view/* ../../../sbvadmin-vben/src/views/sbvadmin
mv -n src/main/java/com/shenfangtao/generator/tempFiles/com/shenfangtao/vue/i18nEN/* ../../../sbvadmin-vben/src/locales/lang/en/routes
mv -n src/main/java/com/shenfangtao/generator/tempFiles/com/shenfangtao/vue/i18nZH/* ../../../sbvadmin-vben/src/locales/lang/zh-CN/routes

echo '*************************删除自动生成的文件************************'
rm -fr src/main/java/com/shenfangtao/generator/tempFiles
echo '*************************移动完成*********************************'

四、第四步,重启下应用,执行flyway

重启后,菜单自动添加了,并且分配给root了。
看下效果

使用mybatisplus 和vben实现低代码开发

; 总结

自此,我们只手动创建了一张sql表,其他所有代码都是自动生成,大大提高了,开发效率。后面我会拿一个文章管理,文章分类,一个简易cms系统来演示下怎么使用这个低代码工具。
到时会录个视频,敬请期待。

2023-01-11 更新:视频录完了,有兴趣的同学可以看看,针对低代码开发的前10来分钟就差不多了

使用mybatisplus 和vben实现低代码开发(高清)

参考文档:
IDEA test程序无法输入 This view is read-only 解决办法
代码生成器(新)
sed命令在MAC下使用出现sed: 1: “Readme.md”: invalid command code R的解决方法
mybatis-plus的Page分页配置与操作
Mybatis plus 自动生成代码与自定义模板

本学习日志是使用Springboot和Vue来搭建的后台管理系统:
演示地址:http://118.31.68.110:8081/index.html
账号:root
密码:123
所有代码可以在gitbub上找到,切换到相应分支即可。【代码传送门

正篇

第一节 spring boot 模块化构建项目
第二节 整合mybatisplus完成用户增删改查
第三节 整合springsecurity实现基于RBAC的用户登录
第四节 springsecurity结合jwt实现前后端分离开发
第五节 使用ResponseBodyAdvice格式化接口输出
第六节 springboot结合redis实现缓存策略
第七节 springboot结合rabbitmq实现队列消息
第八节 springboot结合rabbitmq实现异步邮件发送
第九节 利用springboot的aop实现行为日志管理
第十节 利用Quartz实现数据库定时备份
第十一节 springboot配置log输出到本地文件
第十二节 使用flyway对数据库进行版本管理
第十三节 springboot配合VbenAdmin实现前端登录
第十四节 springboot配合VbenAdmin实现用户CURD
第十五节 基于RBAC的权限管理VbenAdmin前端实现
第十六节 springboot 打包vue代码实现前后端统一部署

番外

2.1 数据库设计原则
3.1 配置apifox自动获取登录的token
13.1 springboot 全局捕捉filter中的异常
14.1 springsecurity整合mybatisplus出现isEnable的问题和解决方案
springboot集成vue使用jenkins持续部署

Original: https://blog.csdn.net/F_angT/article/details/127740239
Author: F_angT
Title: 使用mybatisplus 和vben实现低代码开发

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/796022/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • python之panda模块1

    Python是一门实现数据可视化很好的语言,他们里面的很多库可以很好的画出图形,形象明了。 今天我们就来说说:Pandas数据分析核心支持库 初识Pandas: Pandas 是 …

    Python 2023年8月7日
    051
  • python bar图 百分比_matplotlib bar()实现百分比堆积柱状图

    使用matplotlib创建百分比堆积柱状图的思路与堆积柱状图类似,只不过bottom参数累计的不是数值而是百分比,因此,需要事先计算每组柱子的数值总和,进而求百分比。 未使用nu…

    Python 2023年9月4日
    048
  • 基于PyQt5、metpy和matplotlib的探空资料可视化界面

    基于PyQt5、metpy和matplotlib的探空资料可视化界面 一、概述 作者这次做的是一个界面,把探空资料可视化呈现给大家,先上一张图给各位看官过目一下界面看着稍稍有点挤,…

    Python 2023年8月31日
    053
  • Flask第二弹:cookie&session操作实现简单的首页登录注销逻辑

    0- 环境准备 1- 安装python环境2- 安装虚拟环境virtualenv3- 安装Flask4- 创建Flask项目5- 开始 1- 我们先创建一个Flask项目 目录如下…

    Python 2023年8月13日
    053
  • Yolov5的配置+训练(超级详细!!!)

    我本来说只是单纯的记录一下第一次跑代码的流程的,结果看到了这么多大家都收藏和点赞,我决定再稍微改改他的排版,希望更多地朋友能在CV方向迅速上手!一、NVIDIA驱动安装与更新首先查…

    Python 2023年7月31日
    053
  • 数据预处理—5.box-cox变换及python实现

    文章目录 * – + 1.box-cox变换是什么? + 2.python实现 + * 2.1逆变换 接上一篇: 特征工程—4.为什么要趋近于正态分布?详解 1.box…

    Python 2023年8月20日
    072
  • Python骚操作,实现驾考自动答题,这就直接满分了?

    Python骚操作来了~ 用Python来实现科目一/四自动答题,100分不要太简单! 最初是表弟最近想买车,但是驾照都没有,买什么车,只能先考驾照~ 看他在网页上练习题目慢吞吞的…

    Python 2023年10月31日
    075
  • pyqt5+matplotlib绘图

    1. 整体界面设计 使用Qt Designer进行界面的设计,使用 栅格布局方式:简单介绍这个界面:主要包括了四个模块儿:1. LineEdit:单行文本用来显示文字2. Tool…

    Python 2023年9月3日
    081
  • 第六章-Python数据可视化–2

    ** 数值型变量的可视化 ** 本篇是数据可视化系列中的第二篇,承接上文,本文主要介绍如何使用matplotlib模块、pandas模块和seaborn模块绘制直方图、核密度图、箱…

    Python 2023年8月31日
    057
  • 【5GC】开源5G核心网(Open5GS)架构详解

    博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持!博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。在5G早期负责终端数据业务层、核心网相关的开发工…

    Python 2023年10月1日
    051
  • python 列表与数组

    列表(list)是python的内置数据类型,列表中元素的数据类型不必相同的。python本身并没有数组(array)类型,但是它的Numpy库中有数组(array)类型。而数组(…

    Python 2023年8月23日
    046
  • 深度学习损失函数numpy实现并与torch对比

    用numpy实现L1损失、MSE损失、KL损失、NLL损失、交叉熵损失、BCE损失、SmoothL1损失,并和torch的计算结果对比。 目录 一、L1损失 1、公式 2、实现及对…

    Python 2023年8月25日
    050
  • Python爬虫进阶(九):http&scrapy请求与响应

    目录 前言 scrapy中的请求与响应 1 Request 2 FormRequest 3 JsonRequest 4 Response 5 TextResponse http中的…

    Python 2023年10月4日
    076
  • 分析Python7个爬虫小案例(附源码)

    本次的7个python爬虫小案例涉及到了re正则、xpath、beautiful soup、selenium等知识点,非常适合刚入门python爬虫的小伙伴参考学习。注:若涉及到版…

    Python 2023年8月3日
    061
  • pandas笔记

    1.1. 创建Series 从字典创建 prices&#xA0;=&#xA0;{<span class="hljs-string">…

    Python 2023年8月9日
    043
  • Python爬取某短视频热点

    Original: https://www.cnblogs.com/123456feng/p/16194699.htmlAuthor: 蚂蚁ailingTitle: Python爬…

    Python 2023年11月3日
    030
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球