AI+若依框架(低代码开发)

一、若依介绍

1.版本介绍

若依为满足多样化的开发需求,提供了多个版本

  • RuoYi-Vue(SpringBoot+Vue的单体项目)

  • RuoYi-Cloud(SpringCloud+Vue的微服务版本项目)

  • RuoYi-App(Uniapp+Vue移动版本)

    RuoYi-APP没有提供后端,可以适配RuoYi-Vue和RuoYi-Cloud

  • RuoYi-other(若依第三方版本)

2.技术选型

本次笔记选用RuoYi-Vue

技术版本
JDK1.8及以上
Mysql5.7及以上
Redis3.0及以上
Node12及以上

3.项目地址

  • 前端:https://gitee.com/zi-ning/RuoYi-Vue3
  • 后端:https://gitee.com/y_project/RuoYi-Vue

二、项目搭建

1.后端项目搭建

1.1 Git克隆项目

https://gitee.com/y_project/RuoYi-Vue

1.2 导入MySQL

  1. 创建数据库
  2. 找到后端项目中的sql文件夹,里面有两个sql脚本,执行【包含30张表】
  3. 将SpringBoot项目配置文件中的数据库配置改成自己的

1.3 启动Redis

1.4 启动后端项目

项目的启动类在ruoyi-admin模块中的RuoYiApplication中

1.5说明

后端项目自带的前端是Vue2版本,现在都是用Vue3,所以可以直接删掉了

2.前端搭建

2.1 Git克隆前端项目

https://gitee.com/zi-ning/RuoYi-Vue3

2.2 下载前端依赖

npm install

2.3 运行前端项目

npm run dev

三、入门案例

现在需要一个课程管理模块,这个模块的前端页面需要条件查询框、数据显示框、添加课程框、课程修改框。

1.准备表结构并导入数据库

#SQL示例
CREATE TABLE courses(
    id              INT AUTO_INCREMENT PRIMARY KEY,
    code            VARCHAR(50)    NOT NULL,
    discipline      VARCHAR(100)   NOT NULL,
    course_name     VARCHAR(255)   NOT NULL,
    price           DECIMAL(10, 2) NOT NULL,
    target_audience VARCHAR(255),
    description     TEXT,
    created_at      TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at      TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

2.配置代码生成信息【重要】

这一步是通过手动配置,从而生成对应的代码
  1. 启动前后端项目,进入前端页面

  2. 选择系统工具——代码生成——导入

    image-20240703143917551

  3. 选择刚才创建的表,点击确定【这样就把表单交由代码生成器管理了】

    image-20240703144032676

    image-20240703144047729

  4. 点击对应表单后面的编辑按钮【可以查看基本信息、字段信息、生成信息等】

    image-20240703144140807

    image-20240703144421684

  5. 点击基本信息:这里修改实体类名称、作者名称

    这里设置的实体类名称就是后面他自动生成的实体类名
    

    image-20240703144732399

  6. 点击字段信息:这里需要修改字段描述、java类型、java属性、增删改勾选框、查询框、查询方式、显示类型

    1.字段描述:就用于将来展示的列名
    2.java类型:一般不用修改,检查一遍即可
    3.java属性:就是用来生成后面的实体类,注意驼峰命名
    4.增删改勾选框:一般是结合页面原型,如果页面中需要增删改某个字段,就勾上
    5.查询框:就是将来的条件查询,勾了就会在上面显示一个选择框
    6.查询方式:如果是等值就用=,如果是模糊就用like
    7.必填框:如果是必须输入就勾上
    8.显示类型:默认是文本框由用户输入,后面可以改成下拉框等
    
  7. 点击生成信息:修改相关信息

    1.包路径
    2.生成模块名
    3.生成业务名
    4.生成功能名
    5.生成方式
    6.上级菜单:生成的页面在哪个模块下,默认在系统工具下
    

    image-20240703150129942

  8. 点击提交

3.下载代码并导入项目

上一步配置完成之后,会生成三部分信息:前后端代码以及动态菜单【前端根据动态菜单动态显示页面】,导入项目就可以了
  1. 点击右侧的下载按钮

    image-20240703150422081

  2. 导入下载下来的动态菜单SQL

    这一步不会新生成一个表,而是插入数据到sys_menu表中
    
  3. 导入前端的代码【包括api以及views页面】

  4. 导入java代码到admin模块中【三层架构代码和mybatis的映射文件】

4.重启项目

四、功能详解

1.权限控制管理

什么是权限控制:不同权限的用户登录相同的系统,可以访问的页面不同
若依提供的权限管理模块:用户管理、角色管理、菜单管理、部门管理、岗位管理

1.1 RBAC

RBAC是一种广泛使用的访问控制模型,通过角色来管理用户菜单权限

image-20240703153321716

实现上述的关系,需要使用五张表:用户表、角色表、菜单表、用户角色表、角色菜单表

同时若依提供了岗位、部门模块,实现了更加精细的权限管理

image-20240703153757466

表关系如下:

image-20240703153839336

1.2 菜单分类

  • 目录:一个模块的大类,点击后可以展开,不用于页面跳转
  • 菜单:点击后可以进入对应的页面
  • 按钮:点击对应的按钮之后,会有对应的操作

2.数据字典

为什么要有数据字典?
前端页面中的一些表单选项可能在不同表单中都会出现,而单独编写后,后期如果要修改会很麻烦,因此使用数据字典统一管理这些字段

若依内置的数据字典包括:性别、状态等
功能包括:字典类型管理、字典数据管理

2.1 表关系说明

image-20240703160713611

说明:
字典类型用于存储一类字典的统称,例如我有一个下拉框供用户选择城市,那么这类就可以命名为城市,然后字典数据表中存储具体的城市名,由外键指定属于哪一类字典

2.2 使用案例

将入门案例中学科管理字段改为数据字典维护

  1. 添加字典类型

    image-20240703161457271

  2. 点击字典类型添加数据

    image-20240703161549616

    image-20240703161604641

    image-20240703161741657
  3. 修改对应的代码生成信息

    image-20240703161916731

    image-20240703162011295

  4. 下载代码,导入前端【如果后端的基本字段没有动那么就直接导入前端代码就可以】

3.参数设置

对系统中的参数进行动态维护,而不需要修改代码。例如直接管理是否开启验证码

image-20240703163040771

阅读备注中的信息,根据备注修改参数键值即可

image-20240703163133593

4.通知公告

若依提供了通知公告的发布,但是由于查看的实现方法很多,因此他没有实现,我们后续可以自己通过二次开发的方式实现发送邮件、以及弹窗的方式显示通知

5.日志管理

若依提供了日志管理功能,包括登录日志和操作日志,这些日志被记录到数据库

登录日志:包含当前登录用户、IP地址、登录状态、访问时间等

操作日志:包括操作类型、操作人员等,同时还可以清空日志

6.系统监控

若依提供了用户监控、缓存监控、数据监控、服务监控等

7.定时任务

我们自己之前设置定时任务的时候都是硬编码的格式,直接写死到代码中,如果需要修改定时任务的时间得去修改代码。

而若依提供了更好的方式,我们只需要在项目中设置好执行的任务,然后可以在前端项目中动态修改项目执行时间

  1. 后端创建一个类,加入容器,创建一个方法,用来执行任务

    image-20240703185154566

  2. 在前端项目中新增定时任务,设置需要定时执行的任务和时间表达式

    image-20240703185417014

  3. 前端开启任务

    image-20240703185430855

8.构建表单

通过表单构建工具,开发者只需要简单的图形化拖拽操作,就能构建复杂的表单

案例:通过表单构建工具,单独制作一个添加课程的表单页面

image-20240703190049093

  1. 制作表单

    image-20240703192249893

  2. 导出【可以选择页面或者弹窗】

    image-20240703192314306

    image-20240703192323641

  3. 将导出的文件复制到前端工程中

  4. 在菜单管理中创建路由地址,根据动态路由展示页面

    image-20240703192449576

9.代码生成

入门案例中已经使用了基本的代码生成器,进行单表操作。若依还提供了树表、主子表(一对多)操作

  • 树表:数据存在层级关系【例如:省/市/县】
  • 主子表:数据存在一对多的关系

案例:树表关系的使用

image-20240703193011322

10.系统接口

若依集成了Swagger提供了在线接口文档,可以进行测试

五、项目结构

https://www.bilibili.com/video/BV1pf421B71v?p=12&spm_id_from=pageDriver&vd_source=b246a40ef435cdf32c518bf3f296775d

1.前端部分

2.后端部分

3.表结构

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux_管道通信

目录 一、匿名管道 1、介绍进程间通信 2、理解管道 3、管道通信 4、用户角度看匿名管道 5、内核角度看匿名管道 6、代码实现匿名管道 6.1 创建子进程 6.2 实现通信 7、匿名管道阻塞情况 8、匿名管道的读写原子性 二、命名管道 1、命名管道 1.1 命名管道通信 …

14-4 深入探究小型语言模型 (SLM)

大型语言模型 (LLM) 已经流行了一段时间。最近,小型语言模型 (SLM) 增强了我们处理和使用各种自然语言和编程语言的能力。但是,一些用户查询需要比在通用语言上训练的模型所能提供的更高的准确性和领域知识。此外,还需要定制小型语言模型&…

IDEA:插件和配置推荐(2024版)

文章目录 一、插件1.1 主题1.2 代码缩略图1.3 Maven插件2.4 彩虹括号2.5 翻译插件2.6 图标插件2.7 MyBatis插件2.8 阿里巴巴开发规范 二、全局配置2.1 主题2.2 字符编码2.3 注释颜色2.4 自动导包2.5 鼠标控制界面大小 三、新项目设置3.1 Maven3.2 SDK 四、恢复初始化 一、插件 …

flutter开发实战-Charles抓包设置,dio网络代理

flutter开发实战-Charles抓包设置 在开发过程中抓包,可以看到请求参数等数据,方便分析问题。flutter上使用Charles抓包设置。dio需要设置网络代理。 一、dio设置网络代理 在调试模式下需要抓包调试,所以需要使用代理,并且仅用H…

操作系统缓存与缓冲

缓存与缓冲 缓冲区是一块临时存储数据的区域,这些数据后面会被传输到其他设备上。缓冲区更像消息队列,用以弥补高速设备和低速设备通信时的速度差,平衡读写速度。例如:IO中内核缓冲区Ring Buffer。 缓存:存在于速度相…

鸿蒙应用开发之Badge容器

在开发应用的时候,经常需要一些提示,特别当用户打开应用时,有一些事情需要提醒一下用户,但是不能自动打开这个窗口提示,这样会让用户比较烦。所以设计一些提示显示来告诉用户,这里有新东西了,赶紧来点击一下查看。 比如像下面例子显示的界面: 在这里显示红点的地方,就…

区块链加载解析方法

一.区块链加载解析 对于数据的下载主要包括三种方式: 1.实现比特币网络协议,通过该协议和其他比特币全节点建立联系,然后同步区块数据。 2.通过比特币节点提供的API服务下载区块链数据。 3.通过blickchain.com提供的rest服务下载区块数据…

Python可实现各种算法库之algorithms使用详解

概要 在软件开发和计算机科学领域,算法是解决问题的核心工具。Python 作为一种广泛使用的编程语言,提供了多种内置和第三方库来实现各种算法。algorithms 库是一个集合了多种常用算法和数据结构的 Python 库,旨在帮助开发者快速实现和应用这些算法。本文将详细介绍 algorit…

【 2024!深入了解 大语言模型(LLM)微调方法(总结)】

引言 众所周知,大语言模型(LLM)正在飞速发展,各行业都有了自己的大模型。其中,大模型微调技术在此过程中起到了非常关键的作用,它提升了模型的生成效率和适应性,使其能够在多样化的应用场景中发挥更大的价值。 那么&…

C++ Linux调试(无IDE)

跨平台IDE编译调试C很方便,如QTCreate 、VSCode、Eclipse等,但是如果只能使用Shell控制台呢,gdb调试的优势就很明显了,在没有IDE的情况下,这个方式最有效。因为上手不是很难,特此整理 参考链接 目录 1、G…

MAC下打印机启用用户代码(RICOH理光打印机)

之前一直用Windows操作公司打印机,最近研究了下用MAC(macos 13.6.7)也能成功打印。公司为了防止恶意打印,因此对打印机设置了用户代码,输入正确的用户代码才能打印,因此配置会复杂一些。 1.安装适配的打印机…

5分钟教你用AI把老照片动起来,别再去花49块9的冤枉钱了

文章目录 需要的工具 最近,AI视频在各大平台上,又火了。 只是火的形式,变成了将老照片动起来,打情感牌,或者做很多经典电视剧的再整活。 直接把可灵的生成时间,从以前的4分钟,生生的干成了20分钟…

【APK】Unity出android包,报错 Gradle build failed.See the Console for details

参考大佬的博客:报错:Gradle build failed.See the Console for details.(已解决)_starting a gradle daemon, 1 incompatible daemon co-CSDN博客 本地出Android包,Build失败 解决办法: 1.下载一个低版本…

如何在多个服务器上安装WordPress分布式部署

许多网络主机现在保证其服务的正常运行时间为 99.9%,但这仍然每年最多有 8.7 小时的停机时间。 许多公司不能够承担这种风险。例如。在超级碗比赛中失败的体育新闻网站可能会失去忠实的追随者。 我们通过设置维护高可用性 WordPress分布式部署配置来帮助 WordPres…

SF-HCI-SAP问题收集17:值映射布尔型EC数据

Complacency is the enemy of study 学习的敌人是自己的满足。 SAP SuccessFactors Employee Central 到 SAP ERP 的员工主数据复制 successfactor employee center主数据同步,一直以来排错比较难,难的地方是这个提示消息比较隐晦,而且同步的…

C#的多线程UI窗体控件显示方案 - 开源研究系列文章

上次编写了《LUAgent服务器端工具》这个应用,然后里面需要新启动一个线程去对文件进行上传到FTP服务器,但是新线程里无法对应用主线程UI的内容进行更改,所以就需要在线程里设置主UI线程里控件信息的方法,于是就有了此博文。此文记…

程序员学CFA——经济学(五)

经济学(五) 货币政策与财政政策基本术语货币政策货币货币的功能货币的定义货币的创造过程货币的供给和需求费雪效应 中央银行中央银行的职能中央银行的目标与通货膨胀的成本中央银行的有效性 货币政策工具货币传导机制货币政策的目标与形式货币政策的目标…

大象机器人开源协作机械臂机械臂接入GPT4o大模型!

本文已经或者同济子豪兄作者授权对文章进行编辑和转载 引言 随着人工智能和机器人技术的快速发展,机械臂在工业、医疗和服务业等领域的应用越来越广泛。通过结合大模型和多模态AI,机械臂能够实现更加复杂和智能化的任务,提升了人机协作的效率…

Linux 压测工具---ab

安装 yum -y install httpd-tools 本文用于压测k8s集群内pod,k8s集群master可直接测试pod ip 命令: ab -n 10000 -c 100 http://10.42.8.212/ 其中,-n表示请求数,-c表示并发数,ip必须有”/“,表示此目录…

k8s上部署单节点apache-lotdb

一、yaml文件 使用的nfs的动态存储类,需要提前搭建。 # cat iotdb_deployment.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata:name: logsnamespace: lotdb spec:storageClassName: "nfs-client"accessModes:- ReadWriteManyresources:req…