Jeecg开发框架前端VUE2数据页面与后端数据库交互实现

1.Jeecg介绍

JeecgBoot 是一款基于代码生成器的低代码开发平台,零代码开发!采用前后端分离架构:SpringBoot2.x,Ant Design&Vue,Mybatis-plus,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! JeecgBoot引领新的开发模式(Online Coding模式-> 代码生成器模式-> 手工MERGE智能开发), 帮助解决Java项目70%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省成本,同时又不失灵活性!JeecgBoot还独创在线开发模式(No代码概念):在线表单配置(表单设计器)、移动配置能力、工作流配置(在线设计流程)、报表配置能力、在线图表配置、插件能力(可插拔)等等!

图片

JeecgBoot在提高UI能力的同时,降低了前后分离的开发成本,JeecgBoot还独创在线开发模式(No代码概念),一系列在线智能开发:在线配置表单、在线配置报表、在线图表设计、在线设计流程等等。
JEECG宗旨是:简单功能由Online Coding配置实现(在线配置表单、在线配置报表、在线图表设计、在线设计流程、在线设计表单),复杂功能由代码生成器生成进行手工Merge,既保证了智能又兼顾了灵活;
业务流程采用工作流来实现、扩展出任务接口,供开发编写业务逻辑,表单提供多种解决方案: 表单设计器、online配置表单、编码表单。同时实现了流程与表单的分离设计(松耦合)、并支持任务节点灵活配置,既保证了公司流程的保密性,又减少了开发人员的工作量。

1.1 项目介绍

1.2 Vue3版本

1.3 Vue2版本

1.4 前端开发

  • 前端UI组件: Ant Design of Vue
    https://www.antdv.com/docs/vue/introduce
  • 报表UI组件:viser-vue
    https://viserjs.gitee.io/demo.html#/viser/bar/basic-bar
  • VUE基础知识: https://cn.vuejs.org/v2/guide
  • Ant Design Vue Pro:https://pro.loacg.com/docs/getting-started

1.5 技术架构

后端技术:Spring Boot 2.6.6 + SpringcloudAlibaba2021.1 +MybatisPlus 3.5.1 + Shiro 1.8.0+ Jwt 3.11.0 
          + Swagger + Redis 
前端技术: Ant-design-vue + Vue + Webpack
其他技术: Druid(数据库连接池)、Logback(日志工具) 、poi(Excel工具)、
          Quartz(定时任务)、lombok(简化代码)
项目构建: Maven、Jdk8

2.表单开发

2.1 创建表单

在jeecg的侧边栏中找到这一项。

表单开发

点击新增创建数据库。

新增

​ 填写数据库的基本信息–表名与表描述,如果有其他需求可按需修改下面的字段。

数据库信息

2.2 添加字段

在下方数据库属性一栏中点击新增就能添加字段。记得添加农场(公司),年份

添加字段

​ 按表头给出的信息填写字段信息,比较关键的是按你的需求修改数据字段的类型,Double类型还需注意添加小数点的位数,由于我需要的计算精度比较高,我这边设置了4。

数据库字段

注意:如果您像我一样,需要在后端调用不同的算法,及得像我一样添加一个字段专门用来判断使用哪一个算法。

计算方式

2.3 下拉字段

一些用来进行筛选计算的字段,可以在页面属性值这一栏里控件类型修改成下拉框。

下拉字段

2.4 同步数据库

​ 当你点确认后,你会发现下方表单中多出了一栏,并且还未同步,这时就要点击右边的更多中的同步数据库选项,将数据真正的创建到服务器中。

同步

3.代码生成

3.1 一键生成

在表单开发里选择,选中需要生成代码的表单,点击代码生成。

生成代码

填写需要生成的目录(目录选择到模块名即可jeecg会补全路径)以及生成的包名。

生成

3.2 前后分离

生成代码后你会发现你的项目中多了,一个刚刚生成的包,其中的包结构如下:

包结构

​ 只有后面两个是后端的代码,其中由于vue3对于某些浏览器不适用,考虑到项目的兼容性,这边选择vue作为前端,vue3这个文件夹可以删除。其中vue中这个这个文件是多余的删除即可。

多余

再将vue文件夹名称改成项目名称forest2复制到jeecg的前端src/views/目录底下即可

复制

4.系统管理

4.1 添加字典

点击侧边栏找到系统管理下的数据字典。

数据字典

再和之前一样找到添加按钮,添加数据字典。关键是这个字典编码要记住,后面需要用到。

填写

然后就是添加字典配置,不断点新增填写您需要的字段即可。

字典配置

4.2 菜单管理

找到系统管理中的菜单管理。

菜单管理

在你想要的位置添加下级目录。

下级目录

这里有两个需要注意的是菜单路径和前端组件,菜单路径是之前生成的前段代码的/包名/Forest2List,前端组件需要把前面的/去掉即可。

子菜单

4.3 角色管理

找到系统管理中的角色管理

菜单管理

由于你是开发者登录的因此找到管理员这一角色,将刚刚创建好的菜单授权给管理员。

授权

勾选刚刚新建好的碳汇造林,并点保存并关闭就授权成功了。

添加菜单

4.4 测试页面

由于修改的后端的代码,则需要重启后端项目后,刷新页面就可以看到我们新建好的表单。

测试

如果能够正常显示表单就表示创建成功!

5.1前端代码

5.1 Forest1List.vue

​ 该文件通常用于列表展示的组件,可以显示数据列表、分页等。在vue中,使用list.vue可以方便地实现对数据的展示和管理。

页面

5.1.2 添加按钮

我们需要再高级查询前面加一个筛选计算的按钮。

插入位置

因此,需要在下面这个位置插入这样的一行。注意:下面的####代表包名,大家按需调整。

<a-button type="primary" @click="####()">筛选计算</a-button>

插入

5.1.3 复制模型

将这两个弹框模型文件复制分并改为Shai####FormShai####Modal的形式代表筛选计算的弹框页面。

弹框模型

5.1.3 导入模型

在脚本标签下首先会导入许多文件,在这下面我们再导入我们的模型。

导入模型

import Shai####Modal from './modules/Shai####Modal'
5.1.4 填入组件

在这个位置把刚刚导入的模型添加到组件里。注意:组件与组件之间要用逗号隔开!!!

组件

Shai####Modal #组件名称
5.1.5 添加事件

再回到刚刚前面的模板标签<template>末尾,找到弹框点击事件,在上面添加自定义的弹框事件。

弹框事件

<shai-####-modal ref="Shai####Modal" @ok="modalFormOk"></shai-####-modal>
5.1.6 添加方法

在脚本标签往下找,就能找到定义函数的位置,在后面添加自定义函数。同样注意添加逗号!

添加函数

####: function (record) {
        this.$refs.Shai####Modal.edit(record);
        this.$refs.Shai####Modal.title = "筛选";
        this.$refs.Shai####Modal.disableSubmit = false;
      },

5.2 ShaiForest1Modal

modal.vue通常用于实现弹出框(Modal)的功能,例如提示框、确认框、错误框等

5.2.1 导入表单

跟之前一样在脚本标签下导入表单文件。由于这个文件是复制得来的得把原本导入的表单文件覆盖掉。

修改

import Shai####Form from './Shai####Form'
5.2.2 填入组件

跟之前一样在组件中填写导入的文件。注意这个对原本的组件也是要覆盖掉的。

组件覆盖

Shai####Form
5.2.3 添加事件

同样再回到刚刚前面的模板标签<template>末尾,找到弹框点击事件,覆盖带哦原本的弹框事件。

添加事件

<shai-####-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></shai-forest1-form>

5.3 ShaiForest1Form

Form.vue通常用于实现表单(Form)的功能,通过绑定表单元素的数据模型来实现表单数据的获取和提交。

5.3.1 删除多余

对于筛选计算无用的则将多余的字段删除。

删除多余

5.3.2 添加接口

首先,在后端控制层最后添加接口方法。

添加接口

@RequestMapping(value = "select")
public Result forest1Select(@RequestBody #### ####) {
	return null;
}

然后在前端的url中添加连接接口。注意逗号!

添加链接

select: "/####/####/select"
5.3.3 修改函数

这个函数是将前端的表单提交到后端并返回结果的这要实现按钮的功能需要微调函数。

修改函数

第一处修改为:

if(!this.model.id){
	httpurl+=this.url.select;
	method = 'post';
}else{
	httpurl+=this.url.select;
	method = 'put';
}

第二处修改为:

that.$emit('ok');
alert(res.result);

6.后端代码

6.1 Mapper

首先在接口文件中写好需要的抽象函数。

映射层

图6.1.1 目录结构
    List<Forest1> forest1Select(Forest1 forest1);

    Forest1 forest1ById(String ids);

再在xml配置文件中写入抽象函数的SQL映射。注意:筛选计算中where语句的字段需按需修改!

    <select id="forest1Select" resultType="org.jeecg.modules.forest1.entity.Forest1">
        select *
        from forest1
        where
        1 = 1
        <if test="tree != null and tree != ''">
            and tree like concat("%",#{tree},"%")
        </if>
        <if test="farm != null and farm != ''">
            and farm like concat("%",#{farm},"%")
        </if>
        <if test="year != null and year != ''">
            and year = #{year}
        </if>
    </select>
    <select id="forest1ById" resultType="org.jeecg.modules.forest1.entity.Forest1">
        select *
        from forest1
        where id = #{ids}
    </select>

6.2 Service

首先在接口文件中写好需要的抽象函数。

服务层

图6.2.1 文件结构
	Double ctreeprojListService(Forest1 forest1);

	Double forestSelectById(List<String> ids, String method);

然后再实现类中将所有抽象函数实现。并在最前面连接上映射层。

连接:

    @Autowired
    Forest1Mapper forest1Mapper;

实现:

        
		List<Forest1> F = forest1Mapper.forest1Select(forest1);
        if (F.size() > 0) {
            Forest1Sequestration f = new Forest1Sequestration(F);
            return f.getCtreeproj_it();
        }
        return null;

        List<Forest1> for1 = new ArrayList<>();
        for (int i = 0; i < ids.size(); i++) {
            for1.add(forest1Mapper.forest1ById(ids.get(i)));
        }
        if (for1.size() > 0) {
            Forest1Sequestration f = new Forest1Sequestration(for1);
            MethodReflect.invoke(f, method, null);
        }
        return null;

6.3 Enity

实体类

还记得我们之前写的字典编码么?我们现在就要在前后端中将字典编码填入到特定字段中。

后端:

在设置了下拉框选项的字段上面写入下面这两行,其中空字符串需要换成你的字典编码。

@Excel(name = "计算方式", width = 15, dicCode = "fotestComute")
@Dict(dicCode = "fotestComute") 

后端

前端:

Shai####Form中找到,由<a-col>包裹的下拉框字段。在其中的dictCode中填入字典编码。

字典编码

6.4 Controlloer

在之前写好查询计算接口和勾选计算接口中,就可以实现前端按钮点击调用后端算法了。

    @RequestMapping(value = "select")
    public Result forest1Select(@RequestBody Forest1 forest1) {
        if (forest1.getFarm() == null && forest1.getYear() == null && forest1.getTree() == null) {
            return Result.OK("请填写至少一种筛选方式");
        }
        if (forest1.getFunctional() == null) {
            return Result.OK("请选择计算方式");
        }
        Object[] args = {forest1};
        Object forest1Out = MethodReflect.invoke(forest1Service, forest1.getFunctional(), args);
        if (forest1Out == null) {
            return Result.OK("您的输入有误");
        }
        return Result.OK(forest1Out);
    }

    @RequestMapping(value = "/SelectById")
    public Result SelectById(String ids, String method) {
        Double forid = forest1Service.forestSelectById(Arrays.asList(ids.split(",")), method);
        return Result.OK(forid);
    }
  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基于javaweb+vue的共享音乐网站源码+设计报告+sql数据库(Web前端框架实训) 该资源内项目源码是个人的课设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到94.5分,放心下载使用! 该资源适合计算机相关专业(如人工智能、通信工程、自动化、软件工程等)的在校学生、老师或者企业员工下载,适合小白学习或者实际项目借鉴参考! 当然也可作为毕业设计、课程设计、课程作业、项目初期立项演示等。如果基础还行,可以在此代码基础之上做改动以实现更多功能。 一、基本要求 1、前端 根据本学期所学知识,使用Vue.js前端技术框架,结合动态Web开发技术,设计一个前后端分离的单页应用(SPA)项目: 共享音乐网站,项目包含注册和登录页面,以及音乐分类展示页面、音乐选择列表和播放页面(可选做功能:播放次数、评分、评论等功能),页面数据从服务器端接口获取。 2、服务器端 使用JSP技术,创建动态Web项目,提供数据录入/编辑界面,数据至少包括歌曲名称、演唱者、歌曲链接和歌曲收录入库时间等;后台数据库采用MySql,保存从页面输入的内容;设计数据访问接口,实现接收前端数据查询,并将查询结果提供给前端展示。在完成系统功能的基础上,撰写设计报告。 硬件准备: 1.安装有Microsoft window7/10 64操作系统计算机 2.配备互联网访问功能 软件准备: 1.操作系统:Microsoft Window7/10 32/64位 2.JDK8 3.Tomcat8 4.Eclipse/其他 5.Mysql VSCode 本次实训的项目是共享音乐网站的设计与实现,对于这个项目的意义是很大的,可以提供用户自行上传音乐到服务器,所有的用户享受音乐。 项目的开发需求包括了用户的注册登陆,收藏音乐,对音乐的播放量进行统计,给出排行榜信息,歌曲的播放和暂停,用户上传mp3文件,展示所有的歌单等等。 1.1 登陆: 用户在未登陆的状态下仅允许可以查看音乐,播放和浏览;当查看个人的歌单的时候或者收藏音乐时以及上传歌曲时,将弹出登陆框,若无账号,可以在窗口注册账号;登陆成功在页面展示个人的账号名称。 登陆需要验证个人账户的正确与否,只有与后端数据库匹配,才允许登陆完成。登陆异常会提示各类异常信息。 1.2 注册: 用户注册的时候提交数据后端进行判断,符合条件的进行注册,并且转到登陆的页面。 信息填写缺少的,或者用户名存在的,可以提示相关的信息。 1.3 展示: 可以将所有的音乐进行展示,首页分类点击进去将本类型的所有音乐展示给用户。还包括个人歌单的展示,对展示的歌曲可以播放收藏等必要操作。 1.4 上传: 用户可以将自己想提交到服务器的歌曲进行上传,提供一个文件拖拽的框,对上传的文件进行获取演唱者和歌曲名称,将其添加到服务器和在数据库内写入该歌曲的信息,方便今后进行数据的播放等操作。 1.5 播放: 用户点击播放按钮可以正确的在数据库和服务器进行数据的获取,并且能在前端页面播放歌曲。随时切换歌曲播放。 1.6 收藏: 已经登陆的用户可以对喜欢的歌曲进行收藏,未登陆的用户先要求登陆再进行收藏。 1.7搜索: 用户在搜索框内进行查询与关键字有关的内容,包括包含歌曲名称或者歌手的,按照歌单的展示方法,在页面进行展示。 二、数据库设计 数据库需要保存个人账户信息,登陆注册的时候进行验证和修改;需要保存歌曲的信息,对歌曲的各类信息保存,对歌曲进行收藏。 数据库主要起到存储数据的功能,所以合理的数据库设计可以减少开发的难度。 为了实现数据库对歌曲的访问需要设置歌曲表,歌曲拥有类型,还需要一个类型表,个人信息的保存需要建立用户表,对歌曲进行收藏,需要设计收藏表。
基于springboot+vue+elementui开发的在线考试系统【前端源码+后端源码+数据库】.zip 系统基于spring boot + vue开发,前端框架elementui,在若依/Ruoyi(Vue后端分离版本)整体系统框架上开发了考试系统相关。 整个系统包括试题管理、考试组织、网上考试、以及资料管理四部分,资料管理只是作为图片、文件共享使用 请先阅读doc目录下《考试系统介绍》,内部有较为详尽功能说明,后续文档将说明数据表生成、源程序运行及部署。 内置功能: 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 岗位管理:配置系统用户所属担任职务。 菜单管理:配置系统菜单,操作权限,按钮权限标识等。 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 参数管理:对系统动态配置常用参数。 通知公告:系统通知公告信息发布维护。 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 登录日志:系统登录日志记录查询包含登录异常。 在线用户:当前系统中活跃用户状态监控。 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。 系统接口:根据业务代码自动生成相关的api接口文档。 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。 缓存监控:对系统的缓存信息查询,命令统计等。 在线构建器:拖动表单元素生成相应的HTML代码。 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈
要连接Vue框架前端数据库后端,可以使用Vue.js与Node.js的组合来实现。具体步骤如下: 1. 创建Vue.js项目 使用Vue CLI创建一个新的Vue.js项目: ```bash vue create my-project ``` 2. 创建Node.js后端 在项目根目录下创建一个名为"backend"的文件夹,并在其中创建一个名为"server.js"的文件。使用Express.js框架创建一个简单的Node.js后端: ```javascript const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => { res.send('Hello World!') }) app.listen(port, () => { console.log(`Example app listening at http://localhost:${port}`) }) ``` 3. 连接数据库 使用Node.js的MySQL模块连接数据库,可以使用以下代码: ```javascript const mysql = require('mysql') const connection = mysql.createConnection({ host: 'localhost', user: 'yourusername', password: 'yourpassword', database: 'yourdatabase' }) connection.connect((err) => { if (err) throw err console.log('Connected to database') }) ``` 4. 创建API 在Node.js后端中创建API,以便Vue.js前端可以与后端进行通信。例如,可以创建一个名为"/users"的API,用于获取所有用户的数据: ```javascript app.get('/users', (req, res) => { connection.query('SELECT * FROM users', (error, results, fields) => { if (error) throw error res.send(results) }) }) ``` 5. 在Vue.js中调用API 在Vue.js中,可以使用Axios库调用Node.js后端中的API。例如,可以在Vue.js组件中使用以下代码获取所有用户的数据: ```javascript import axios from 'axios' export default { data() { return { users: [] } }, created() { axios.get('http://localhost:3000/users') .then(response => { this.users = response.data }) .catch(error => { console.log(error) }) } } ``` 上面的代码使用Axios库调用了Node.js后端中的"/users" API,并将返回的数据存储在Vue.js组件的"data"属性中。 通过上述步骤,可以在Vue.js前端和Node.js后端之间建立连接,从而实现前端数据库后端数据交互

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HaoXinJT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值