今天我们来借助若依来快速的搭建一个springboot+vue3的前后端分离的的Java管理后台,后台网页使用vue3和ElementPlus来快速搭建。
这里我们可以借助若依自动生成Java和vue3代码,这就是若依的强大之处,即便你不会Java和vue开发,只要跟着石头哥也可以快速的开发一款Java和vue程序。
官方只是给我们提供一个推荐,建议大家尽量和右边的课程版本保持一致。
建议大家尽量和课程版本保持一致,避免一些版本不对应导致一些不必要的错误。
我们Java后端使用idea开发vue3前端网站使用vscode软件开发。大家自行下载这两款软件即可。
这里安装redis和node的时候有些注意事项给大家简单说说。
我们安装redis和node的时候都需要配置环境变量,其实我们在安装的过程中,就可以直接勾选上,这样就可以免去自己再单独配置环境变量的麻烦了。所以不管安装redis和node时,只要看到PATH的地方,一定要记得都勾选上。
我们有时候用别人的框架,肯定想自定义一些样式,颜色,图案。接下来石头哥就带大家自定义下。
自动生成Java和vue代码正式若依的强大之处,接下来我就来带大家快速的实现一个对用户信息进行增删改查的小案例。我们先讲单表和主子表生成代码,然后再讲树形表生成代码。
我们这里以一个用户表为例,首先就是去若依后台,创建一个数据表。这也是若依的强大之处,可以快速的创建数据表。建表语句先给到大家。
createtableqcl_user(idint(11)auto_incrementcomment'编号',namevarchar(20)nullcomment'姓名',educationvarchar(20)nullcomment'学历',ageintnullcomment'年龄',primarykey(id))comment'用户表';我们借助若依提供的功能来实现数据表的创建,这里qcl_user是我们的表名,大家最好和石头哥保持一致。点击系统工具,然后点击代码生成,点击新建,把上面的sql语句复制到这里即可。
到这里我们自动生成的代码就可以运行起来,并且对数据进行增删改查了。
我们前面章节给大家简单的展示了单表前后端代码的快速生成,接下来我们来实现商品管理功能包含:商品分类表,商品表。我们知道一个分类下面可以对应多个商品。所以我们这两个表是主子表关系。分类表是主表,商品表是子表。
我们创建数据表可以直接使用idea自带的mysql可视化管理工具,也可以直接用sql语句来创建。由于我们直接导入sql语句更方便,也可以统一标准,所以这里推荐大家使用sql语句来创建数据表。
对应的sql语句贴出来给到大家,为了方便大家学习,我这里尽量使用简单的字段。
根据需求,我们需要创建两个表:一个是good_type(商品分类表),另一个是good(商品表)。在good表中,我们将包含商品名、价格和图片字段,并且设置一个外键与good_type表关联,以体现一对多的关系。下面是相应的SQL语句示例:
创建商品分类表good_type和商品表good
--商品类型表CREATETABLE`good_type`(`type_id`INTAUTO_INCREMENTCOMMENT'自增ID',`type_name`VARCHAR(255)NOTNULLCOMMENT'类型名称',PRIMARYKEY(`type_id`)--主键)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COMMENT='商品类型';--商品表CREATETABLE`good`(`good_id`INTAUTO_INCREMENTCOMMENT'自增ID',`good_name`VARCHAR(255)NOTNULLCOMMENT'商品名称',`price`DECIMAL(10,2)NOTNULLCOMMENT'价格',`image_url`VARCHAR(255)COMMENT'图片链接',`type_id`INTCOMMENT'类型ID',FOREIGNKEY(`type_id`)REFERENCES`good_type`(`type_id`)ONDELETECASCADEONUPDATECASCADE,--级联操作PRIMARYKEY(`good_id`)--主键)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COMMENT='商品信息';在这段SQL中:
大家不用记这些sql语句,这些sql语句都是使用ai来自动生成的,后面也会教大家如何使用Ai来快速编程
我们对比主表good_type和子表good生成信息的区别如下
首先通过sql代码生成树表(必须要有id,parent_id,name他们对应树结构的子节点,父节点,和label文本)
新建数据库表结构的sql语句如下
CREATETABLEdepartment(department_idINTAUTO_INCREMENTPRIMARYKEYCOMMENT'部门ID',department_nameVARCHAR(100)NOTNULLCOMMENT'部门名称',parent_idINTCOMMENT'上级部门ID,用于表示部门层级关系',chairmanVARCHAR(100)COMMENT'部门负责人')COMMENT='部门信息表';简单解释下这段sql
这段SQL语句用于创建一个名为department的表,用于存储部门信息。表中包含以下字段:department_id:部门ID,自增长主键。department_name:部门名称,不允许为空。parent_id:上级部门ID,用于表示部门层级关系。chairman:部门负责人。表的注释为“部门信息表”。
注意:若依建表的字段需要加注释,注释就是生成页面的显示内容
然后去修改里面的信息。
那么我们先来编写对应的联表查询语句
我们上面自动生成了xml标签,接下来就是把一开始的联表查询sql语句插入到xml里
给大家解释下这行代码:
这段代码是在Vue.js项目中,特别是使用Element库时,这段代码是一个定义表格列el-table-column的模板语法,具体功能如下:
综上所述,此代码段在ElementUI的表格中创建了一个列,用于展示数据列表中每个项目typeName字段的值,且该列标题为“类型”,内容居中显示。当绑定的数据发生变化时,这一列的内容也会相应更新,提供给用户一个实时反映数据状态的视图。
我们把对应的代码修改成下这样,然后重启项目即可。
到这里就全部改造好了,然后重启下Java项目。
这段代码是Vue.js中ElementUI框架的模板语法,用于定义一个表格列()的配置。具体说明如下:label="商品个数":设置该列的标题为“商品个数”。align="center":指定该列内容的水平对齐方式为居中对齐。prop="goodCount":指定了该列数据的绑定属性名为goodCount,意味着这一列会显示表格数据中每个对象的goodCount属性值。综上,此代码片段定义了一个表格列,用于展示每行数据中商品的数量,且文本居中对齐。
到这里我们就可以在分类列表里查询对应的商品个数了
需求分析接下来我们就来分析需求了,我们在添加商品时想通过下拉框来实现选择分类。那么我们就要进行以下几步操作
1,请求分类数据填充到下拉框里2,把之前的输入框改为下拉框
所以我们接下来就要来改造代码了。
代码其实很简单,如下。
使用el-form-item定义表单元素,标签为"类型名称",绑定prop="typeId"用于表单验证。使用el-select定义下拉选择框,绑定v-model="queryParams.typeId"实现选择值与数据对象的双向绑定,设置placeholder="请选择类型"作为占位符,clearable属性允许清空选项,@keyup.enter="handleQuery"监听回车键事件触发查询操作,style="width:150px;"设置下拉框宽度为150像素。使用el-option定义下拉选项,使用v-for="itemintypeList"循环遍历typeList数组中的每个元素,将item.typeId作为选项的唯一标识符,item.typeName作为选项的显示文本,item.typeId作为选项的绑定值。当用户选择一个类型或按下回车键时,会触发handleQuery方法进行查询操作。