java springboot VUE 在线学习平台系统开发mysql数据库web结构java编程计算机网页源码maven项目前后端分离

news2024/11/24 17:07:36

一、源码特点
  springboot VUE 在线学习平台系统是一套完善的完整信息管理类型系统 前后端分离,结合springboot框架和VUE完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架
(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。

java springboot VUE 在线学习平台系统开


前段主要技术 vue 
后端主要技术 Springboot java
数据库 mysql
开发工具 IDEA  JDK1.8 
环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以 不建议。

2.IDE环境:推荐IDEA;

3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可,但本系统不需要

4.硬件环境:windows 7/8/10 1G内存以上;;

5.数据库:MySql 5.7、8.0等版本均可;

6.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;

2. 使用IDEA导入项目;

3. 将项目中xuexi\src\main\resources 下的 application.properties 配置文件中的数据库配置改为自己的配置;
数据库支持 mysql5.0 到5.6 ,如果需要5.7 到8.0 需要二次转换升级
4.vscode 开vue项目工程
5.vue 项目启动  npm run serve 
vue 版本 2.9.6
node 版本 16.14.2

二、功能介绍
前台主要功能:
课程浏览、课程视频浏览
公告浏览
问题提出、查看
课程提交、查看
后台主要功能:
(1)管理员管理:对管理员信息进行添加、删除、修改和查看
(2)教师管理:对教师信息进行添加、删除、修改和查看
(3)学生管理:对学生信息进行添加、删除、修改和查看
(4)课程管理:对课程信息进行添加、删除、修改和查看
(5)课程视频管理:对课程视频信息进行添加、删除、修改和查看
(6)订单管理:对订单信息进行添加、删除、修改和查看
(7)评价管理:对评价信息进行添加、删除、修改和查看
(8)订单视频管理:对订单视频信息进行添加、删除、修改和查看
(9)问题管理:对问题信息进行添加、删除、修改和查看
(10)公告管理:对公告信息进行添加、删除、修改和查看

数据库设计

CREATE TABLE `gly` (
`glyid` int(11) NOT NULL auto_increment,
`yhm` VARCHAR(40) default NULL COMMENT '用户名',
`mm` VARCHAR(40) default NULL COMMENT '密码',
`xm` VARCHAR(40) default NULL COMMENT '姓名',  PRIMARY KEY  (`glyid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `jiaoshi` (
`jsid` int(11) NOT NULL auto_increment,
`yhm` VARCHAR(40) default NULL COMMENT '用户名',
`mm` VARCHAR(40) default NULL COMMENT '密码',
`xm` VARCHAR(40) default NULL COMMENT '姓名',
`lxdh` VARCHAR(40) default NULL COMMENT '联系电话',
`lxdz` VARCHAR(40) default NULL COMMENT '联系地址',
`zy` VARCHAR(40) default NULL COMMENT '专业',
`byxx` VARCHAR(40) default NULL COMMENT '毕业学校',
`tx` VARCHAR(40) default NULL COMMENT '头像',  PRIMARY KEY  (`jsid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `xuesheng` (
`xsid` int(11) NOT NULL auto_increment,
`yhm` VARCHAR(40) default NULL COMMENT '用户名',
`mm` VARCHAR(40) default NULL COMMENT '密码',
`nc` VARCHAR(40) default NULL COMMENT '昵称',
`lxdh` VARCHAR(40) default NULL COMMENT '联系电话',
`lxdz` VARCHAR(40) default NULL COMMENT '联系地址',  PRIMARY KEY  (`xsid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `kecheng` (
`kcid` int(11) NOT NULL auto_increment,
`lsh` VARCHAR(40) default NULL COMMENT '流水号',
`kcmc` VARCHAR(40) default NULL COMMENT '课程名称',
`sm` VARCHAR(4000) default NULL COMMENT '说明',
`tp` VARCHAR(40) default NULL COMMENT '图片',
`tj` VARCHAR(40) default NULL COMMENT '推荐',
`jg` VARCHAR(40) default NULL COMMENT '价格',
`js` VARCHAR(40) default NULL COMMENT '教师',
`zt` VARCHAR(40) default NULL COMMENT '状态',
`fbsj` VARCHAR(40) default NULL COMMENT '发布时间',  PRIMARY KEY  (`kcid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `kcsp` (
`kcspid` int(11) NOT NULL auto_increment,
`kc` VARCHAR(40) default NULL COMMENT '课程',
`spmc` VARCHAR(40) default NULL COMMENT '视频名称',
`spwj` VARCHAR(40) default NULL COMMENT '视频文件',
`sm` VARCHAR(40) default NULL COMMENT '说明',
`scsj` VARCHAR(40) default NULL COMMENT '上传时间',  PRIMARY KEY  (`kcspid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `dingdan` (
`ddid` int(11) NOT NULL auto_increment,
`ddh` VARCHAR(40) default NULL COMMENT '订单号',
`kc` VARCHAR(40) default NULL COMMENT '课程',
`jg` VARCHAR(40) default NULL COMMENT '价格',
`yh` VARCHAR(40) default NULL COMMENT '用户',
`tjsj` VARCHAR(40) default NULL COMMENT '提交时间',
`zt` VARCHAR(40) default NULL COMMENT '状态',
`zs` VARCHAR(40) default NULL COMMENT '证书',
`zszt` VARCHAR(40) default NULL COMMENT '证书状态',  PRIMARY KEY  (`ddid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `pingjia` (
`pjid` int(11) NOT NULL auto_increment,
`dd` VARCHAR(40) default NULL COMMENT '订单',
`kc` VARCHAR(40) default NULL COMMENT '课程',
`pj` VARCHAR(40) default NULL COMMENT '评价',
`yh` VARCHAR(40) default NULL COMMENT '用户',
`pjsj` VARCHAR(40) default NULL COMMENT '评价时间',  PRIMARY KEY  (`pjid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `ddsp` (
`ddspid` int(11) NOT NULL auto_increment,
`dd` VARCHAR(40) default NULL COMMENT '订单',
`sp` VARCHAR(40) default NULL COMMENT '视频',
`wc` VARCHAR(40) default NULL COMMENT '完成',  PRIMARY KEY  (`ddspid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `wenti` (
`wtid` int(11) NOT NULL auto_increment,
`bt` VARCHAR(40) default NULL COMMENT '标题',
`nr` VARCHAR(40) default NULL COMMENT '内容',
`yh` VARCHAR(40) default NULL COMMENT '用户',
`js` VARCHAR(40) default NULL COMMENT '教师',
`zt` VARCHAR(40) default NULL COMMENT '状态',
`hf` VARCHAR(40) default NULL COMMENT '回复',
`tjsj` VARCHAR(40) default NULL COMMENT '提交时间',  PRIMARY KEY  (`wtid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `gonggao` (
`ggid` int(11) NOT NULL auto_increment,
`bt` VARCHAR(40) default NULL COMMENT '标题',
`nr` VARCHAR(40) default NULL COMMENT '内容',
`fbsj` VARCHAR(40) default NULL COMMENT '发布时间',  PRIMARY KEY  (`ggid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;


java代码设计


   /**公告列表 查询gonggao
     *
     */
    @GetMapping("list")
    public Result  list(@RequestParam(value = "pageNum",defaultValue = "1") int page,
                            @RequestParam(value = "pageSize",defaultValue = "10") int szie,
			    @RequestParam(defaultValue = "") String bt
			    )  {

        Result res=new Result();


        List list=null;
        String sql="";
        try{


      
	  if(bt!=null&&!bt.equals("")){
                sql+=" and bt like '%"+bt+"%'";//符合条件 拼接sql 标题
            }
          


            list=gonggaodao.querylist(sql,page,szie);//查询gonggao表数据返回 list对象
            res.setCode(200);
            res.setMessage("查询成功");


            res.setData(tl.ltoj(list));

            list=gonggaodao.querylist(sql);
            res.setNum(list.size());

        }catch(Exception e){
            e.printStackTrace();;
        }




        return res;
    }


   /**公告列表 查询gonggao
	 * 
	 */

    @GetMapping("listpage")
    public Result  listpage(
			    @RequestParam(defaultValue = "") String bt
			    )  {

        Result res=new Result();


        List list=null;
     String sql="";
      
	  if(bt!=null&&!bt.equals("")){
                sql+=" and bt like '%"+bt+"%'";//符合条件 拼接sql 标题
            }
	try{
	  
	list=gonggaodao.querylist(sql);//查询gly 表数据返回 list对象
        res.setCode(200);
        res.setMessage("查询成功");


        res.setData(tl.ltoj(list));

	}catch(Exception e){
            e.printStackTrace();;
        }


       

        return res;
    }


	/**公告添加方法 对表 gonggao  进行添加
	 * 
	 */
    @PostMapping(value = "add")
    public Result  add(@RequestBody gonggao bean){
            Result res=new Result();


	try{
         
            if(bean.getGgid()!=null&&!bean.getGgid().equals("")){
            gonggaodao.update(bean);//执行 修改 gonggao 添加操作
                res.setMessage("操作成功");
            }else{
            gonggaodao.add(bean);//执行 添加gonggao 添加操作
                res.setMessage("添加成功");
        }


	 }catch(Exception e){
            e.printStackTrace();;
        }
        res.setCode(200);

        //System.out.println(res);



        return res;

    }

vue 代码设计

   <el-table :data="tableData" border stripe :header-cell-class-name="'headerBg'"  @selection-change="handleSelectionChange">

     
        <el-table-column  label="序号" width="80"
      type="index"
      :index="indexMethod">

    </el-table-column>

      <el-table-column prop="bt" label="标题" width="120"></el-table-column>
      <el-table-column prop="nr" label="内容" width="220"></el-table-column>
      <el-table-column prop="fbsj" label="发布时间" width="140"></el-table-column>
    
      <el-table-column label="操作"  width="280" align="center">
        <template slot-scope="scope">
        
        <el-button type="info" @click="handleDetail(scope.row)">详情 <i class="el-icon-reading"></i></el-button>
          <el-button type="success" @click="handleEdit(scope.row)">编辑 <i class="el-icon-edit"></i></el-button>
          <el-popconfirm
              class="ml-5"
              confirm-button-text='确定'
              cancel-button-text='我再想想'
              icon="el-icon-info"
              icon-color="red"
              title="您确定删除吗?"
              @confirm="del(scope.row.ggid)"
          >
            <el-button type="danger" slot="reference">删除 <i class="el-icon-remove-outline"></i></el-button>
          </el-popconfirm>
        </template>
      </el-table-column>
    </el-table>
    <div style="padding: 10px 0">
      <el-pagination
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          :current-page="pageNum"
          :page-sizes="[2, 5, 10, 20]"
          :page-size="pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="total">
      </el-pagination>
    </div>

    <el-dialog title="公告信息" :visible.sync="dialogFormVisible" width="30%" >

      <el-form  :model="form" :rules="rules" ref="beanForm"  label-width="80px" size="small" >

        <el-form-item label="标题" prop="bt"  >
          <el-input v-model="form.bt"  ></el-input>
       </el-form-item>
        <el-form-item label="内容" prop="nr"  >
          <el-input v-model="form.nr" rows="5" type="textarea"  ></el-input>
       </el-form-item>
        <el-form-item label="发布时间" prop="fbsj"  >
          <el-input v-model="form.fbsj"  ></el-input>
       </el-form-item>
  
       
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogFormVisible = false">取 消</el-button>
        <el-button type="primary" @click="save">确 定</el-button>
      </div>
      
    </el-dialog>


        <el-dialog title="查看公告信息" :visible.sync="dialogDetailVisible" width="30%" >

      <el-form  :model="form" :rules="rules" ref="beanForm"  label-width="80px" size="small" >


        <el-form-item label="标题" prop="bt"  required>
         {{form.bt}}
       </el-form-item>

        <el-form-item label="内容" prop="nr"  required>
         {{form.nr}}
       </el-form-item>

        <el-form-item label="发布时间" prop="fbsj"  required>
         {{form.fbsj}}
       </el-form-item>

    
    
       
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogDetailVisible = false">关闭</el-button>
       
      </div>
      
    </el-dialog>

三、注意事项
1、管理员账号:admin密码:admin 数据库配置文件DBO.java
2、开发环境为IDEA开发 vscode开发vue,数据库为mysql,使用java语言开发后端 vue 开发前端。
3、数据库文件名是jspxuexi.sql 系统名称xuexi
4、地址:http://128.0.0.1:8080/login

四 系统实现


 

 

 

 

 

 

 

 

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

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

相关文章

005Mybatis返回值(ResultMap 一对多,多对多)

属性 id 应该总是指定一个或多个可以唯一标识结果的属性。 虽然&#xff0c;即使不指定这个属性&#xff0c;MyBatis 仍然可以工作&#xff0c;但是会产生严重的性能问题。 只需要指定可以唯一标识结果的最少属性。显然&#xff0c;你可以选择主键&#xff08;复合主键也可以…

DevOps系列文章之 远程部署的一种方案

远程部署的一种方案 sshpass 一个简单、轻量级命令行工具&#xff0c;提供非交互式密码验证 原理 ssh 直接使用 TTY 访问&#xff0c;以确保密码是用户键盘输入的。 sshpass 在专门的 tty 中运行 ssh&#xff0c;以误导 ssh 相信它是从用户接收到的密码使用 sshpass 是不安…

深入理解HashMap源码

文章目录 HashMap简介源码分析关键参数获取数组下标put方法resize扩容过程jdk1.7的扩容实现jdk1.8的扩容实现 get()方法remove()方法 总结 关于HashMap&#xff0c;一直都是一个非常热门的话题&#xff0c;只要你出去面试&#xff0c;一定少不了它&#xff01; 本文主要结合 JD…

English Learning - L3 作业打卡 Lesson5 Day35 2023.6.8 周四

English Learning - L3 作业打卡 Lesson5 Day35 2023.6.8 周四 引言&#x1f349;句1: Publishers know that some people are self-conscious about what they read on public transport and so they put out different versions of a cover.成分划分弱读连读爆破语调 &#x…

实现表白墙

我们已经学习了Http以及Servlet类的相关知识 今天我们来实操一下,实现一个简单的既有前端又有后端的网站–表白墙 之前在学习前端的时候已经写过了表白墙的前端代码,存在两个问题 1.页面重启,数据丢失 2.数据只是在本地的,别人看不见 那么这样的问题我们要咋样解决呢? 引入…

黑马Redis视频教程高级篇(二:多级缓存)

目录 一、什么是多级缓存&#xff1f; 二、JVM进程缓存 2.1、导入案例 2.2、初识Caffeine 2.3、实现JVM进程缓存 2.3.1、需求 2.3.2、实现 三、Lua语法入门 3.1、初识Lua 3.2、HelloWord 3.3、变量和循环 3.3.1、Lua的数据类型 3.3.2、声明变量 3.3.3、循环 3.4…

Hadoop | 好用的脚本分享

知识目录 一、写在前面✨二、一键安装HA&#x1f36d;三、Hadoop一键启动&#x1f525;四、一键启动可视化工具&#x1f36d;五、结语&#x1f525; 一、写在前面✨ 大家好&#xff01;我是初心&#xff0c;希望我们一路走来能坚守初心&#xff01; &#x1f3e0; 个人主页&a…

2023版一线大厂Java面试八股文(最新版)1000+ 面试题附答案详解,最全面详细

Java 面试八股文有必要背吗&#xff1f; 我的回答是&#xff1a;很有必要。你可以讨厌这种模式&#xff0c;但你一定要去背&#xff0c;因为不背你就进不了大厂。现如今&#xff0c;Java 面试的本质就是八股文&#xff0c;把八股文面试题背好&#xff0c;面试才有可能表现好。…

Python爬虫之Scrapy框架系列(21)——重写媒体管道类实现保存图片名字自定义及多页爬取

目录&#xff1a; 重写框架自带媒体管道类部分方法实现保存图片名字的自定义&#xff1a;1.爬虫文件&#xff1a;2.items.py文件中设置特殊的字段名&#xff1a;3.settings.py文件中开启自建管道并设置文件存储路径&#xff1a;4.编写pipelines.py5.观察可发现完美实现&#xf…

JetBrains 激活方式的区别

文章目录 简介激活方式 简介 JetBrains 是一家全球知名的软件开发工具公司。 JetBrains 成立于 2000 年&#xff0c;总部位于捷克共和国的布拉格。该公司致力于为开发者提供高效、智能和创新的软件开发工具&#xff0c;以提升开发人员的生产力和开发体验。 JetBrains 的主要…

Redis的主从复制、哨兵机制、集群

一、主从复制 1、定义 主&#xff1a;master以写为主当master数据变化的时候从&#xff1a;slave以读为主自动将新的数据异步同步到其他slave数据库 2、作用 读写分离、容灾恢复、数据备份、水平扩容支撑高并发。 3、使用方式——配从不配主 权限配置&#xff1a;master如…

【图书推荐 | 13】后端系列

【赠书活动第十二期 】 图书推荐 本期书籍&#xff1a;后端系列 图书列表 本期图书列表&#xff1a; Spring Cloud 微服务快速上手项目驱动零起点学JavaNode.js 从基础到项目实战Diango Web 开发实例精解Flask Web 全栈开发实战精通Hadoopsmysql 数据库基础与实战应用Neo4j 图谱…

指针--用指针变量作函数参数的实例(按值调用与模拟按引用调用)、函数指针及其应用

一、用指针变量作函数参数的实例 思考题&#xff1a; 例题&#xff1a;从键盘输入某班学生某门课成绩&#xff08;每班人数最多不超过40人&#xff0c;具体人数由键盘输入&#xff09;&#xff0c;是分析下列程序是否能实现计算并输出最高分以及相应学号。 #include <stdi…

群晖 NAS 外网访问设置 - 腾讯 DNSPod

目录 ​编辑 一、使用DNSPod&#xff0c;实现DDNS&#xff08;动态域名&#xff09; 二、公共概念厘清 三、腾讯DNSPod上详细设置步骤 1. 打开DNSPod.cn网站并登录 2. 登录成功后&#xff0c;选择【我的域名】-> 【添加域名】 3. 添加群晖NAS需要二级域名&#xff08…

Visual Studio封装静态链接库至新静态库,供程序调用

熟悉Windows开发的人都肯定了解静态链接库和动态链接库。 最近遇到一个问题&#xff1a; A静态库是使用VS编译&#xff0c;因为C版本的问题&#xff0c;并不能直接在Qt中被调用&#xff0c;因为会报头文件某处错误。 因为A库很大&#xff0c;同时又不想修改太多A库源文件&#…

开源社章程(2023版)

第 1 条 开源社是由志愿贡献于开源事业的个人志愿者&#xff0c;依 “贡献、共识、共治” 原则所组成的开源社区。第 2 条 开源社的英文名称为“KAIYUANSHE”&#xff0c;官方网站地址为 https://kaiyuanshe.cn/第 3 条 开源社的愿景为&#xff1a;立足中国、贡献全球&#xff…

English Learning - L3 作业打卡 Lesson5 Day36 2023.6.9 周五

English Learning - L3 作业打卡 Lesson5 Day36 2023.6.9 周五 引言&#x1f349;句1: So next time you are on a train, look around and see what other people are reading, but dont jump to any conclusions.成分划分弱读连读爆破语调 &#x1f349;句2: You will probab…

MIT 6.S081 Lab One

MIT 6.S081 Lab One 引言sleep(难度&#xff1a;Easy)解析Lab代码实现 pingpong&#xff08;难度&#xff1a;Easy&#xff09;Lab代码实习 小结 引言 本文为 MIT 6.S081 2020 操作系统 实验一解析。 MIT 6.S081课程前置基础参考: 基于RISC-V搭建操作系统系列 sleep(难度&…

English Learning - L3 作业打卡 Lesson5 Day34 2023.6.7 周三

English Learning - L3 作业打卡 Lesson5 Day34 2023.6.7 周三 引言&#x1f349;句1: The woman reading the romantic novel could be a lawyer.成分划分弱读连读爆破语调 &#x1f349;句2: She just wants a light read to take her mind off work.成分划分弱读连读爆破语调…

STM32读取MQ2烟雾浓度数据判断烟雾是否超标

【1】MQ2传感器是什么&#xff1f; MQ2传感器是一种可探测多种气体的传感器&#xff0c;常用于监测烟雾、液化气、丙酮、乙醇、甲醛、天然气等有害气体。MQ2传感器基于半导体敏感元件&#xff0c;通过检测气体中有害物质的浓度变化来实现气体检测。 MQ2传感器具有以下特点&a…